在C中使用“\”?
我正在查看这段代码,但我无法弄清楚为什么在&&运算符之后使用“\”?
if ((*(u32*)(kaddr + 0x64) == *(u32*)(kaddr + 0x78)) && \ (*(u32*)(kaddr + 0x68) == *(u32*)(kaddr + 0x88)))
该行末尾的\
右侧将以下行粘贴到当前行。 由于C通常忽略空格,因此在声明宏时这非常有用。
除非这是#define
一部分,否则不需要反斜杠。
来自C规范§5.1.1.2
将删除紧跟着换行符的每个反斜杠字符(
\
)实例,拼接物理源行以形成逻辑源行。
但它不需要,因为C语言不要求将if
语句放在一行上。
它的用途是宏定义,基本上它告诉编译器不要在行的末尾停止但是继续进行rater。 例:
#define ASSERT_NULL(value) \ do { \ if((value) == NULL) { \ return true; \ } \ } while(NULL)
现在,如果你不放\
,你将无法获得你正在寻找的function。