【发布时间】:2016-11-16 13:51:33
【问题描述】:
所以我为这个基本的平方函数使用了一个预处理宏:
#define SQUARE(a) a*a
然后将其传递给这些函数,以分别执行这些任务:
double f(double x) {
return SQUARE(x);
}
double g(double x) {
return SQUARE(1-x);
}
double h(double x) {
return 1/SQUARE(x);
}
使用这些函数,对于 g(x) 和 h(x),我得到的结果如下:
g(2) = -3, h(2) = 1
g(3) = -5, h(3) = 1
g(4) = -7, h(4) = 1
etc...
我已经更改了函数以获得它们预期的结果,但我很好奇上述函数中发生了什么给我这样奇怪的结果?
【问题讨论】:
标签: c++ macros c-preprocessor