2 aeons120 aeons120 于 2014.10.15 22:21 提问

C语言关于#用法的错误

#include
#define NAME ABC
#define AGE 21
void main()
{
fprintf( "我是" #NAME ",年龄"#AGE"\n");
getchar();
}

我是想用# 来实现 输出 我是ABC,年龄21 这样的结果.
这么做的初衷是尝试各种方式运用define功能,是自己理解
但是参考了这篇blog(http://blog.csdn.net/acs713/article/details/6891837)
之后,自己尝试了如上代码,但是Visual 2013 却提示如下信息:

CSDN移动问答

我想知道怎么样才能在可能保证原目的的情况下,正确编译?

1个回答

mymtom
mymtom   Rxr 2014.11.10 15:30

#include
#define NAME ABC
#define AGE 21
#define S1(x) #x
#define S2(x) S1(x)

int main()
{
printf("我是" S2(NAME) ",年龄" S2(AGE) "\n");
getchar();
return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!