在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上面示例中的字符,但为什么它没有删除我第一个示例中的所有换行符?

以上是在C中的宏之外使用反斜杠换行符的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>