do - while #define中的构造

时间:2014-01-24 22:31:27

标签: c macros do-while

在include / linux / sched.h中,一个重要的任务状态更改函数是:

#define __set_task_state(tsk, state_value)      \
    do { (tsk)->state = (state_value); } while (0)
#define set_task_state(tsk, state_value)        \
    set_mb((tsk)->state, (state_value))

正如您所看到的,在#define __set_task_state(...)中有一个while()结构。

现在我的问题是,它是否就像任何其他C do-while循环代码一样 - 或者它是否具有特殊属性,因为它是在#define宏中定义的?

由于

0 个答案:

没有答案