在WINUSER.H中,它定义了WS_OVERLAPPEDWINDOW:
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | \
WS_CAPTION | \
WS_SYSMENU | \
WS_THICKFRAME | \
WS_MINIMIZEBOX | \
WS_MAXIMIZEBOX)
我不明白的是operator |
是做什么而不是| \
?
答案 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)
在行的末尾使用\,因此定义可以扩展到多行。