XuC*_*hen 4 c preprocessor preprocessor-directive
我正在查看一些代码,发现它在调用函数时使用 \ 来分隔行,这是否意味着什么?还是只是为了更具可读性?
function(\
lets_say_this_a_long_attribute, \
and_this_is_another_attribute_with_a_long_name_or_operations, \
attribute);
Run Code Online (Sandbox Code Playgroud)
来自 C 标准(5.1.1.2 翻译阶段)
- 每个反斜杠字符 () 后面紧跟一个换行符的实例都被删除,拼接物理源代码行以形成逻辑源代码行。只有任何物理源代码行上的最后一个反斜杠才有资格成为这种拼接的一部分。非空的源文件应以换行符结尾,在任何此类拼接发生之前,该换行符之前不应紧跟反斜杠字符。
例如这些物理线路
i\
n\
t\
x;
Run Code Online (Sandbox Code Playgroud)
形成逻辑线
int x;
Run Code Online (Sandbox Code Playgroud)
这是一个演示程序。
#include <stdio.h>
int main(void)
{
i\
n\
t\
x = 10;
p\
r\
i\
n\
t\
f
( "%d\n",
x );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它的输出是
10
Run Code Online (Sandbox Code Playgroud)
这种技术用于编写宏,例如#define。