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