Tag: do while

怎么做{} while(0)在宏中工作?

虽然本论坛和所有其他论坛已经多次讨论过这个话题,但我仍有疑问。 请帮忙。 在Linux内核中, do{} while(0)如何工作? 例如, #define preempt_disable() do { } while (0) 如何禁用抢占? #define might_resched() do { } while (0) 它是如何重新安排的? 类似地,我已经看到了互斥锁和其他宏的宏。 这有什么用? 我理解以下问题,但不是上面的例子。 #define foo(x) do { do something } while(0) 编辑: rt_mutex_lock的以下代码rt_mutex_lock样? /** * rt_mutex_lock – lock a rt_mutex * * @lock: the rt_mutex to be locked */ void __sched rt_mutex_lock(struct rt_mutex […]