2015-09-07 31 views
-2

我需要在C結構中使用無符號雙精度,但我無法編譯。 錯誤說:C中無符號雙精度?

#include <stdlib.h> 
#include <stdio.h> 

struct eReg{ 
    int key; 
    unsigned char a; 
    unsigned short int b; 
    unsigned double myvar; 
    }MyReg; 

有誰知道什麼是錯的:對於`MYVAR」

,這是我的代碼短,符號或無符號無效?

編輯 我不知道「無符號雙」等於「無符號的浮動」,那麼我不知道我必須找到答案,我的問題是「用C無符號的花車?」無論如何,閱讀後,我接受我的問題是「重複」。我建議刪除這個問題。

+3

沒有'unsigned double'這樣的東西# – dman2306

+1

只需使用'double',刪除'unsigned'即可。它不是C中的有效數據類型。[ – ace

+2

[爲什麼C沒有unsigned float?](http://stackoverflow.com/q/512022/1708801) –

回答

3

不能有浮點浮點類型。因此沒有無符號的雙精度型或無符號浮點數。無符號只能應用於像char short int和long這樣的整數類型。我們有無符號整數的原因是它們可以存儲兩倍的數字,並且可以更好地處理二進制數據。我無法真正想到使用無符號浮點類型的好處。您可以獲得更高的精度,但這可能不值得在硬件和軟件中實現它。

+0

謝謝你,我的老師有點瘋狂。 –