最佳答案
可能的复制品:
C/C + + 宏中的 Do-While 和 if-else 语句
做{ ... }而(0)ーー它有什么好处?
我正在阅读 linux 内核,我发现了许多这样的宏:
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
为什么他们使用这个而不是简单地在{}中定义它?