C语言:已知有宏定义#define M 3+2 请问表达式3*M*3的值是A.45 B.27 C.28 D.15为什么是15 不是45
问题描述:
C语言:已知有宏定义#define M 3+2 请问表达式3*M*3的值是
A.45 B.27 C.28 D.15
为什么是15 不是45
答
因为编译时遇到宏只是展开,在没有加括号的情况下,3*M*3 展开为 3*3+2*3,所以是15.
一般定义宏都强调注意这点,要加括号
#define M (3+2)
这样就能得到45了.