由于宏名称和右括号之间没有空格,因此以下程序无法编译。
#include "stdio.h"
#define MYINC ( a ) ( ( a ) + 1 )
int main()
{
printf("GeeksQuiz!");
return 0;
}
(A)是
(B)虚假答案: (B)
说明:请注意,#define是预处理程序指令,即在实际编译发生之前对其进行处理。在上面的程序片段中,MYINC不在任何程序中使用。因此,即使MYINC不会执行预期的行为,即不会递增a,但是MYINC是有效的宏。如果我们在程序中的任何地方都使用了MYINC,它将被替换为“((a)((a)+ 1)””。因此,以上程序将编译并运行而没有任何问题。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。