【问题标题】:C program and MacrosC 程序和宏
【发布时间】:2016-12-14 10:02:25
【问题描述】:

我有这样的事情:

#define num1 6
#define num2 3

我想将这 2 个宏相乘,然后将 它转换为字符串,然后再存储在一个宏中。 请提出您的建议。

【问题讨论】:

  • 请展示您迄今为止的研究/调试工作。请先阅读How to Ask页面。
  • 为什么是宏?无法通过这种方式转换为字符串。
  • 如果你想在预处理器中这样做,那么它是不可能的(除非你考虑一个很长的#if指令级联的可能性)

标签: c macros c-preprocessor operator-keyword operator-precedence


【解决方案1】:

如果你想要第三个宏,它是这两个数字相乘的结果,你可以这样做:

#define num1 6
#define num2 3
#define num3 (num1*num2)

然后你可以像这样打印它:

printf("num3=%d\n", num3);

如果你想将该值存储在一个字符串中,你可以这样做:

char num3str[10];
sprintf(num3str, "%d", num3);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多