正在加载图片...
第章編铎预处理 说明 (1)列出的参数必须在宏体中用到 (2)带参数的宏展开只是将实参简单替换形参。当实参 中含有运算,宏展开可能会出问题。 如有宏定义: # define s(n) n*n'n 若将形参n用实参a+b替换,S(a+b)会变成 a+b*a+b*a+b,显然与原意不相符。 如将宏定义改成: define s(n)(n)*(n*(n) S(a+b)为(a+b)*(a+b)*(a+b),与原意相符 因此,在带参的宏定义中,参数应加括号来描述第 12 章 编 译 预 处 理 说明: (1) 列出的参数必须在宏体中用到。 (2) 带参数的宏展开只是将实参简单替换形参。当实参 中含有运算,宏展开可能会出问题。 如有宏定义: #define S(n) n*n*n 若将形参 n 用实参 a+b 替 换 , S ( a+b ) 会变成 a+b*a+b*a+b, 显然与原意不相符。 如将宏定义改成: #define S(n) (n)*(n)*(n) S(a+b)为(a+b)*(a+b)*(a+b),与原意相符。 因此, 在带参的宏定义中, 参数应加括号来描述
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有