相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

0.1 + 0.2 == 0.3  ->  false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2         ->  0.30000000000000004
Run Code Online (Sandbox Code Playgroud)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

2798
推荐指数
28
解决办法
28万
查看次数

是否有充分的理由始终在C中用括号括起一个定义?

显然,有些时候#defines必须有括号,如下:

#define WIDTH 80+20

int a = WIDTH * 2; // expect a==200 but a==120
Run Code Online (Sandbox Code Playgroud)

所以我总是括号,即使它只是一个数字:

#define WIDTH (100)
Run Code Online (Sandbox Code Playgroud)

C的新人问我为什么这样做,所以我试图找到一个边缘情况,在一个数字上没有括号#define会导致问题,但我想不出一个.

这种情况是否存在?

c parentheses c-preprocessor

48
推荐指数
7
解决办法
2万
查看次数