“| \”是什么意思?

时间:2011-03-05 13:31:07

标签: c

在WINUSER.H中,它定义了WS_OVERLAPPEDWINDOW:

#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED     | \
                             WS_CAPTION        | \
                             WS_SYSMENU        | \
                             WS_THICKFRAME     | \
                             WS_MINIMIZEBOX    | \
                             WS_MAXIMIZEBOX)

我不明白的是operator |是做什么而不是| \

7 个答案:

答案 0 :(得分:6)

管道是按位OR,反斜杠表示定义在下一行继续。

答案 1 :(得分:6)

\,因为行的最后一个字符表示“此行未完成”。它从预处理的输出中消失。

这些行相当于:

#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | ...

更具可读性。

答案 2 :(得分:2)

管道符号“|”按位或者这些常量,反斜杠只是逃避了下面的换行。

答案 3 :(得分:1)

|是按位OR

\在一行的末尾是下一行的延续,否则你将在一行中写入 - 它将两条物理行合并为一条逻辑行。

以下行是等效的。

#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)

答案 4 :(得分:1)

\只是一个续行字符;这意味着下一个物理线路是同一逻辑线路的一部分。这只是为了可读性。

答案 5 :(得分:1)

两件事。 |是按位OR运算符,\告诉预处理器将 next 行的内容添加到 this 行。这与

相同
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | ...

答案 6 :(得分:1)

在行的末尾使用\,因此定义可以扩展到多行。

相关问题