【问题标题】:Pasting a character and a integer using macro [duplicate]使用宏粘贴字符和整数
【发布时间】:2021-03-23 07:39:11
【问题描述】:

我试图将 c 和 4 和预期的输出粘贴为 c4 但不能遵循相同的,我的代码有什么问题

#include<stdio.h>
#define paste(a,b) (#a)##b
int main()
{
    printf("\n%s",paste(c,4));
    return 0;
}

【问题讨论】:

  • 您需要一个用于#“字符串化”的辅助宏。这是一个常见问题解答,请参阅链接的副本。

标签: c macros


【解决方案1】:
#include<stdio.h>
#define stringize(a) #a
#define paste(a,b) stringize(a##b)
int main()
{
    printf("\n%s",paste(c,4));
    return 0;
}

## 连接参数,但 # 字符串化参数,你不能像这样一起使用它们:#define paste(a, b) #(a##b)。这会给你一个错误

错误:'#' 后面没有宏参数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多