【发布时间】:2021-10-25 10:27:22
【问题描述】:
我有一个带有 _Generic 的宏用于打印
#define PRINT(data) \
_Generic((data), \
char:print_char)(data)
这是 print_char 的实现
void print_char(char data){
printf("%c\n",data);
}
问题是当我调用 PRINT('t') 例如它打印 116 而不是 t 时,我发现的解决方案是在 PRINT 语句中添加 (char),如 PRINT((char)'t')。 问题是如何在没有演员表的情况下打印字符?
【问题讨论】:
-
其实我的回答与question非常相似
-
我明白了,谢谢你的链接,它有帮助!
-
问题中的代码不打印“116”;它不包含
printf或其他会打印“116”的语句。在提出此类问题时,请确保代码构成正确的minimal reproducible example。 -
这能回答你的问题吗? How to treat char as char in _generic in c