C语言程序设计(第七章).ppt

C语言程序设计(第七章)

带参宏中的参数两边的括号是不能少的。即使在参数两边加括号还是不够的,下面通过实例进行说明。 例7.6 在定义的形参两边加括号也得不到正确结果实例。 #define SQR(x) (x) * (x) /* 带参宏定义 */ int main(void) /* 主函数main() */ { int x, y; /* 定义整型变量 */ printf(输入一个数:); /* 输入提示 */ scanf(%d, x); /* 输入x */ y = 9 / SQR(x + 1); /* 含带参宏调用 */ printf(y = %d\n, y); /* 输出y */ system(PAUSE); /* 输出系统提示信息 */ return 0; /* 返回值0, 返回操作系统 */ } 程序运行时屏幕输出参考如下: 输入一个数:2 y = 9 请按任意键继续. . . 由于宏代换之后变为: y = 9 / (x + 1) * (x + 1); 显然与原意不符。为了得到正确答案应在宏定义中的整个字符串外加括号 例7.7 在宏定义中的整个字符串外加括号。 #define SQR(x) ((x) * (x)) /* 带参宏定义 */ int main(void) /* 主函数main() */ { int x, y; /

文档评论(0)

1亿VIP精品文档

相关文档