假设有人通过以下方式编写了增量宏(即,将值递增一):
#define INC1(a) ((a)+1)
#define INC2 (a) ((a)+1)
#define INC3( a ) (( a ) + 1)
#define INC4 ( a ) (( a ) + 1)
为上述宏选择正确的语句。
(A)只有INC1是正确的。
(B)所有(即INC1,INC2,INC3和INC4)都是正确的。
(C)仅INC1和INC3是正确的。
(D)仅INC1和INC2是正确的。答案: (C)
说明:在C语言中,对于带有参数的宏,宏名和开括号之间不能有空格。这就是为什么只有INC1和INC3正确的原因。基本上,“#define INC2(a)((a)+1)”导致“ INC2”扩展为“(a)((a)+1)”,这不是所需的扩展。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。