当前位置:淳美吧 > 智慧生活 > 心理 > C语言宏替换函数
手机版

C语言宏替换函数

来源:淳美吧 阅读:2.23W 次
C语言宏替换函数

#define SQR(X) X*X 有问题因为宏替换只是简单的符号替换,当计算 SQR(k + m)/SQR(k + m) 时,是这样替换的:k + m * k + m / k + m * k + m,即:2 +

1 *

2 + 1 / 2 + 1 * 2 + 1,结果为 7, 又 a /= SQR(k + m)/SQR(k + m),即 a = 10 / 7,结果为 1(这里是整数运算,小数均被忽略),故选 B。所以 #define SQR(X) X*X 明显违背本意,正确的定义是: #define SQR(X) (X)*(X) (普通加减乘除运算无问题,遇到优先级教乘除更高的运算又会出现错误),最稳妥的是: #define SQR(X) ((X)*(X))。

本文链接:https://www.chunmeiba.com/zhihuishenghuo/xinli/ezxqrw.html

Copyright © 2024. 淳美吧 All right reserved. 浙ICP备20204785号-2

文字美图素材,版权属于原作者。部分文章内容由网友提供推送时因种种原因未能与原作者联系上,若涉及版权问题,敬请原作者联系我们,立即处理。