#include
#define PRINT(i, limit) do \
{ \
if (i++ < limit) \
{ \
printf("GeeksQuiz\n"); \
continue; \
} \
}while(0)
int main()
{
int i = 0;
PRINT(i, 3);
return 0;
}
在上述程序中, GeeksQuiz被打印了多少次?
(A) 1
(B) 3
(C) 4
(D)编译时错误答案: (A)
说明:如果宏需要扩展为多行,则最佳做法是在do {} while(0)中编写这些行,以避免产生宏副作用。 GeeksQuiz打印一次后,控件到达while语句以检查条件。由于条件为假,因此循环终止。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。