我需要在C结构中使用unsigned double,但我无法编译。 错误说明:对于`myvar'
,短,有符号或无符号无效这是我的代码:
#include <stdlib.h>
#include <stdio.h>
struct eReg{
int key;
unsigned char a;
unsigned short int b;
unsigned double myvar;
}MyReg;
有谁知道出了什么问题?
修改 我不知道&#34; unsigned double&#34;等于&#34; unsigned float&#34;,然后我不知道我必须找到我的问题的答案为&#34; C中的无符号浮点数?&#34;无论如何,在阅读帖子后,我已经接受了我的问题&#34;复制&#34;。我建议删除这个问题。
答案 0 :(得分:4)
您不能拥有unisgned浮点类型。因此没有unsigned double或unsigned float。 unsigned只能应用于整数类型,如char short int和long。我们有无符号整数的原因是它们可以存储两倍大的数字,并且更适合处理二进制数据。我无法想到使用无符号浮点类型的优点。您可以获得更高的精度,但这可能不值得在硬件和软件中实现它。