#include <stdio.h> #define square(x) x*x int main() { int x; x = 36/square(6); printf ( "%d" , x); return 0; } |
(A) 1 (B) 36 (C) 0 (D) 编译错误 答复: (B) 说明: 预处理器将正方形(6)替换为6*6,表达式变为x=36/6*6,x的值计算为36。请注意,对于表达式“x=square(6-2)”宏也将失败
如果我们想从宏方块(x)中获得正确的行为,我们应该将宏声明为
#define square(x) ((x)*(x))
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END