RX_93HiV 2014-10-15 14:21 采纳率: 0%
浏览 1614

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 2014-11-10 07: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;
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)