【发布时间】:2015-12-02 12:01:28
【问题描述】:
我需要在 C 结构中使用 unsigned double,但我无法编译。 一个错误说:short,signed or unsigned invalid for `myvar'
这是我的代码:
#include <stdlib.h>
#include <stdio.h>
struct eReg{
int key;
unsigned char a;
unsigned short int b;
unsigned double myvar;
}MyReg;
有谁知道怎么回事?
编辑 我不知道“无符号双精度”等于“无符号浮点数”,然后我不知道我必须找到我的问题的答案作为“C 中的无符号浮点数?”无论如何,在阅读完帖子后,我已经接受我的问题是“重复的”。我建议删除这个问题。
【问题讨论】:
-
没有
unsigned double这样的东西 -
只使用
double,删除unsigned。它不是 C 中的有效数据类型。 -
也许你在想
unsigned long longvsunsigned double?double作为修饰符和类型会更有意义。我们会有long和double long,然后是float和double float。我们甚至可以使用double double float而不是decimal,因为float、double和decimal都是非整数类型并不直观。double int然后double double int也同样直观。然后你必须问自己“为什么byte不是本机类型而不是char推断它包含一个字符而不是一个字节?