早教吧 育儿知识 作业答案 考试题库 百科 知识分享

对宏的替换不是很理解#define.PI.3.14#define.S(r)对宏的替换不是很理解#define.PI.3.14#define.S(r)PI*r*r为什么S(a+b)=PI*a+b*a+b,而不是PI*(a+b)*(a+b)?

题目详情
对宏的替换不是很理解 #define. PI. 3.14 #define. S(r)
对宏的替换不是很理解 #define. PI. 3.14 #define. S(r) PI*r*r 为什么S(a+b)=PI*a+b*a+b,而不是PI*(a+b)*(a+b)?
▼优质解答
答案和解析
因为宏定义在预编译时被简单的替换了,为什么说简单,因为它只把字符原样的替换,他不会在意语言啊,运行优先级之类的,所以:
S(a+b)=PI*a+b*a+b
如果你要达到PI*(a+b)*(a+b),则需要这么写#define. S(r) PI*(r)*(r)