#include <stdio.h> #define PRINT(i, limit) do { if (i++ < limit) { printf ( "GeeksQuiz" ); continue ; } } while (0) int main() { int i = 0; PRINT(i, 3); return 0; } |
多少次 极客问答 上面的程序中打印了什么? (A) 1. (B) 3. (C) 4. (D) 编译时错误 答复: (A) 说明: 如果一个宏需要扩展成多行,最好是在 do{}while(0) 避免宏观副作用。之后 极客问答 打印一次后,控件到达while语句以检查条件。因为条件为false,所以循环终止。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END