中易网

#define _STR(x) _VAL(x) #define _VAL(x) #x 这个时候为什么不直接定义#define _STR(x) #x呢?

答案:1  悬赏:80  
解决时间 2021-04-28 00:26
  • 提问者网友:騷女、無惡不作
  • 2021-04-27 18:22
看着好像多余一样
最佳答案
  • 二级知识专家网友:走,耍流氓去
  • 2021-04-27 19:32
因为x可以是个宏,一次替换时x不会被展开,会被直接转换为字符串。比如《C标准库》里的例子,这样定义之后可以写_STR(__LINE__),如果_VAL(x)会直接得到"__LINE__"而不会是当前的行数。虽然晚了点,希望能帮到你
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息