使用" \"在C?

时间:2015-08-15 05:32:24

标签: c backslash

我正在查看此代码,但我无法弄清楚为什么使用" \"之后&&运营商?

if ((*(u32*)(kaddr + 0x64) == *(u32*)(kaddr + 0x78)) && \
    (*(u32*)(kaddr + 0x68) == *(u32*)(kaddr + 0x88)))

3 个答案:

答案 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)

现在,如果您不放\,您将无法获得所需的功能。