当我们定义一个宏时,do When(0)有什么用途?
我正在阅读Linux内核,我发现许多宏都是这样的:
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
为什么他们使用这个而不是简单地在{}中定义它?
紫衣仙女
眼眸繁星
相关分类