在宏中的令牌替换期间出错

时间:2014-06-26 16:23:07

标签: macros

我写了这个小程序,希望放置这些值,它会看到输出,但是我得到一个错误:

D:\ C Programming \ token-pasting.c ||在函数'main'中:| D:\ C编程\ token-pasting.c | 6 |错误:'Hell23'未声明(首次使用此功能)| D:\ C编程\ token-pasting.c | 6 |注意:每个未声明的标识符仅针对它出现的每个函数报告一次。 || ===构建完成:1个错误,0个警告(0分0秒)=== |

#include <stdio.h>
#define  swap(front, back)  front##back

main()
{
swap(Hell, 23) ;
return 0;
}

1 个答案:

答案 0 :(得分:0)

有一百万种方法可以打印“hell21”,仍然需要上下文。抛弃你的“交换”宏......

char *str = "hell";
int x = 21;
printf("%s%d", str, x);

%s表示用字符串数组替换printf的那一部分,%d表示用整数替换printf的那部分。