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 武汉岩海低应变分析软件,导数据库里不显示波形图
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。
  • ¥30 win c++ socket
  • ¥30 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题