【发布时间】:2020-03-30 14:46:18
【问题描述】:
#include <stdio.h>
#define get(s) #s //***
int main()
{
char str[] = get(hello); //***
printf("%s\n", str);
return 0;
}
用//*** 注释帮助我理解这两行?
谁能描述#define 中发生的事情?
【问题讨论】:
标签: c
#include <stdio.h>
#define get(s) #s //***
int main()
{
char str[] = get(hello); //***
printf("%s\n", str);
return 0;
}
用//*** 注释帮助我理解这两行?
谁能描述#define 中发生的事情?
【问题讨论】:
标签: c
这是使用预处理器的 stringification 功能。您可以在 https://en.cppreference.com/w/c/preprocessor/replace 的“# 和 ## 运算符”下阅读更多相关信息。
效果是第二条标记线展开为
char str[] = "hello";
【讨论】: