【发布时间】:2015-11-02 12:37:10
【问题描述】:
我一直在尝试理解宏扩展,发现第二个 printf 给出了错误。我期望第二个打印语句生成与第一个相同的输出。我知道有一些函数可以进行字符串连接。我发现很难理解为什么第一个打印语句有效而第二个无效。
#define CAT(str1, str2) str1 str2
void main()
{
char *string_1 = "s1", *string_2 = "s2";
printf(CAT("s1", "s2"));
printf(CAT(string_1, string_2));
}
【问题讨论】:
-
这个问题与宏一点关系都没有。
标签: c c-preprocessor