C11 _Generic 可以不带参数使用吗?

问题描述 投票:0回答:0

我想使用 _Generic 来重载函数,其中一个没有参数,比如:

#include <stdio.h>
#include <string.h>

void f1(void)
{
    printf("F1\n");
}

void f2(int n)
{
    printf("F2 %d\n", n);
}

#define func(x) _Generic((x),   \
    int: f2,                    \
    default: f1                 \
    )(x)

int main(void)
{
    func(); // I want this to call f1
    return 0;
}

这可能吗?

c macros c11
© www.soinside.com 2019 - 2024. All rights reserved.