我在我的64位計算機中使用double long
而sizeof(double long)
是16 bytes
。 所以我做了如下分配:整型常量對於其類型而言太大並且對二元運算符無效操作數
long double f = 0xA0000000000000000000000000000000; // 32 characters in hex
,我得到這樣的警告:warning: integer constant is too large for its type
。該警告看起來不正確,我的常數可以很容易地保存在一個128位的值。那麼,爲什麼我會收到警告?
我也有這樣的代碼:
long double tmp = 0x90000000CCCCCCCC0000000000000000;
long double res = (f & tmp); // where f is the previously defined variable
,我得到以下錯誤error: invalid operands to binary &
。爲什麼?
'long double'是一個浮點類型。 – Mysticial 2012-02-13 11:33:46
你確定你不是指'long long'嗎? – 2012-02-13 11:34:21
@ MichaelKrelin-hacker'long long'在我的64位機器中很不幸是一個64位的值,而不是我需要的128位。 @Mystical似乎你是正確的,這就是爲什麼'&'不起作用,但是在C中可能有另一種128位類型,我可以使用它嗎? – 2012-02-13 11:36:09