【发布时间】:2014-12-05 11:52:26
【问题描述】:
这些指令是代码和工作的一部分。但我不明白他们的语法。我只知道“\”表示代码继续下一行。有谁能够帮助我?为什么有一个“;”。 “ADDPOPUPMENU”是什么意思,为什么要大写?
#define ADDPOPUPMENU(hmenu, string) \
HMENU hSubMenu = CreatePopupMenu(); \
AppendMenu(hmenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, string);
// Add a menu item
#define ADDMENUITEM(hmenu, ID, string) \
AppendMenu(hSubMenu, MF_STRING, ID, string);
【问题讨论】:
-
这是 line 延续,而不是行。它使整个宏成为一行。
-
ADDPOPUPMENU是宏名,为什么要大写,耸耸肩... -
有一个“;”因为定义宏的人希望宏扩展包含“;”。名称“ADDPOPUPMENU”是大写的,因为定义宏的人希望宏名称是大写的。
-
为什么会有分号?因为 C++ 语句需要分号?无论如何,大写的宏命名是常规的,以便作为宏脱颖而出。
-
我建议你在一些简单的代码中使用宏,然后通过预处理器运行源代码并查看预处理器的输出。
标签: c++ winapi syntax preprocessor-directive