我想使用_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;
}
这可能吗?
1条答案
按热度按时间ax6ht2ek1#
C语言最酷的一点是它非常简单,所以你可以提出一些简单的解决方案,比如:
它不是任何标准的一部分,看起来不像实际上不使用参数那样漂亮,但至少读起来是一样的。
希望这能帮上忙。