请考虑以下代码:
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)
为什么会出现这些不准确之处?
显然,有些时候#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会导致问题,但我想不出一个.
这种情况是否存在?