如果我在foo.c中有以下代码
#define P(x) printf("%s\n", #x)
void main() {
P(3 == 4);
}
Run Code Online (Sandbox Code Playgroud)
调用gcc -E foo.c将输出:
int main() {
printf("%s\n", "3 == 4");
}
Run Code Online (Sandbox Code Playgroud)
请注意,#运算符已经为宏参数x字符串化了字符串.但是,当我调用/ usr/bin/cpp时,我得到以下内容......但未正确扩展.
int main() {
printf("%s\n", #3 == 4);
}
Run Code Online (Sandbox Code Playgroud)