2015-09-07 117 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

谢谢你,我的老师有点疯狂。 –