绝对值计算

Aug*_*rom 7 c floating-point integer

当计算一个整数或浮点值的绝对值,有使用中的任何优点ABS stdlib.h中或晶圆厂从math.h中相比于使用条件运算?

#define ABS(x) (((x) >= 0)? (x): -(x))
Run Code Online (Sandbox Code Playgroud)

chu*_*ica 6

代码应abs()int(或更窄),fabs()double,fabsf()with float,labs(x)with long一起使用@Joachim Pileborg

  1. 优势:非宏观.宏ABS()会对参数进行两次评估,可能不需要如此ABS(x++).@EOF@EOF

  2. 优势:非宏观.序列点确定性.@EOF

  3. 优势:非宏观. 用OP -0.0返回. 回报.如果遵循IEC 60559浮点运算.-0.0ABS()fabs(-0.0)0.0

  4. 优势:非宏观. ABS(0.0/0.0)试图改变标志.(转角案件关注).

  5. 优势:非宏观. abs(),fabs()是标准功能,审稿人容易理解. ABS()不是.

  6. 性能:配置文件以查找平台上最佳的内容.什么是最好的(速度,代码大小,内存大小)因编译器而异.

  7. 没有类型检查ABS().

  8. 不能取宏的地址.