易百教程

17、以下 C 代码的输出是什么?

#include <stdio.h>
#define PRINT(var,data) do {\
                            if(var < data)\
                                {\
                                    printf("Aticleworld");\
                                    ++var;\
                                }\
                            }while(1);
int main()
{
    PRINT(0,2);
    return 0;
}

输出:编译器错误。
说明: 扩展宏时,var 将被替换为 0(Rvalue)。 因为正在尝试增加 Rvalue,所以将收到编译器错误。