在C中的宏之外使用反斜杠换行符
int main(){
int a = 5;
return a;
}
以上编译正常。我假设 C 预处理器在编译之前删除了反斜杠?
gcc -E 的输出:
int main(){
int a = 5;
return a;}
似乎并非所有n(新行)字符都像使用宏一样被删除,它只是主要删除了反斜杠。
我已经在多行宏中看到过这种用法,例如:
#define TEST(in)
int a = in;
int b = 6;
int main(){
TEST(5)
return 0;
}
gcc -E 的输出:
int main(){
int a = 5; int b = 6;
return 0;
}
预处理将删除反斜杠以及n上面示例中的字符,但为什么它没有删除我第一个示例中的所有换行符?