我用const代替#define,但在下面的例子中它打印出false。const vs #define(奇怪的行爲)
#include <iostream>
#define x 3e+38
using namespace std;
int main() {
float p = x;
if (p==x)
cout<<"true"<<endl;
else
cout<<"false"<<endl;
return 0;
}
但是如果我更換
#define x 3e+38
與
const float x = 3e+38;
它完美的作品,問題是爲什麼呢? (我知道有幾個主題討論#define與const,但真的沒有得到這個,請賜教)
嘗試'#define x 3e + 38f' –
Waow,但爲什麼這樣不起作用,以及爲什麼以及如何工作? –
不要用'=='來比較float/double – adrianm