如何将
tst*_*isl 5
问题是所有使用的表达式都_Generic必须是有效的。在您的示例宏func扩展为:
int main(void) { Args_char args = {0}; args.val = 'A'; _Generic(args, Args_int: func_int(args), Args_char: func_char(args));}请注意,使用func_int(args)for argswhich 会Args_char导致错误。
解决方案是使用_Generic选择一个函数指针,然后对其应用参数。
#define func(param) \ _Generic((param), \ Args_int: func_int, \ Args_char: func_char) (param)如何将