我正在尝试制作一个带有以下公式的宏:(a^2/(a+b))*b
,并且我想确保不会出现除以零的情况。
#define SUM_A( x, y ) if( x == 0 || y == 0) { 0 } else { ( ( ( x * x ) / ( ( x ) + ( y ) ) ) * ( y ) )}
然后我在主函数中调用宏:
float a = 40, b = 10, result;
result = SUM_A(a, b);
printf("%f", result);
我尝试在if函数周围加上括号,但是在if语句之前一直出现语法错误。我也尝试过使用return,但我读到某个地方说你不应该在define中使用它。
#define
中可以使用任何东西,只需要注意预处理器即可。请参见下面@Saeed的答案。 - Yuval