正在加载图片...
第9章第1节 2.有关问题的说明 1)宏名后的实参—常量,变量,表达式 注意展开后语句的意义可能发生变化 如:# define s(a,b)ab 本意:area=(2+3)(1+2); area=S(2+3,1+2); 展开 实际为:area=2+3*1+2; 应为:# define s(a,b)(a)*(b) 展开 area=S(2+3,+2); area=(2+3)*(1+2); 没问题了吗? 展开 如有:x=S(2,3)/S(4,5); 相当于:x=2*3/4*5 X=(2)*(3)(4)(5); 而非:x=(2*3)(4*5) 进一步改为:# define s(a,b)(a)(b) 展开 x=S(2,3)S(4,5); x=(2)(3)(4)(5);相当于:x=(2*3)(4*5)2. 有关问题的说明 1)宏名后的实参——常量,变量,表达式 注意展开后语句的意义可能发生变化 如:#define S(a,b) a*b area=S(2+3,1+2); 实际为:area=2+3*1+2; 本意:area=(2+3)*(1+2); 展开 应为:#define S(a,b) (a)*(b) area=S(2+3,1+2); area=(2+3)*(1+2); 展开 没问题了吗? 如有: x=S(2,3)/S(4,5); x=(2)*(3)/(4)*(5); 相当于:x=2*3/4*5 而非:x=(2*3)/(4*5) 进一步改为:#define S(a,b) ((a)*(b)) x=S(2,3)/S(4,5); x=((2)*(3))/((4)*(5)); 相当于:x=(2*3)/(4*5) 展开 展开 第9章第1节
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有