我正在寻找有关基本C++类型大小的详细信息.我知道这取决于架构(16位,32位,64位)和编译器.
但是有没有C++的标准?
我在32位架构上使用Visual Studio 2008.这是我得到的:
char : 1 byte
short : 2 bytes
int : 4 bytes
long : 4 bytes
float : 4 bytes
double: 8 bytes
Run Code Online (Sandbox Code Playgroud)
我试图找到,但没有成功,可靠的信息,表述的大小char,short,int,long,double,float(和其他类型的我没想到的),在不同的体系结构和编译器.
我int32_t最近在C程序中遇到了数据类型.我知道它存储了32位,但是没有int并且int32做同样的事情?
另外,我想char在程序中使用.我可以用int8_t吗?有什么不同?
总结一下:C中的int32,int,int32_t,int8和int8_t有什么区别?
我不想用这个来骚扰你,但我在互联网上的任何地方都找不到关于“位填充”究竟是什么的详细解释,以及 StackOverflow 上与位填充相关的线程的任何答案.
我还搜索了 ISO 9899-1990,其中提到了“位填充”,但在我需要时并未对其进行解释。
我在网上找到的关于此的唯一内容是here,其中只给出了对一句话的一个可笑的简短解释,说:
位填充:
位填充是向传输或存储单元添加一个或多个额外位以使其符合标准大小。
一些来源将位填充识别为一种 位填充。
其中至少有某种信息,但对我来说还不够解释。我不太明白这到底是什么意思。它也指这个词 “位填充”。
当我在 StockOverflow 上查看“填充”的相关标签时”,填充被描述为:
插入内存结构以实现地址对齐的额外空间 - 或 - 框架和 HTML 元素内容之间的额外空间 - 或 - 使用格式化打印命令(如 C 中的 printf* 系列)打印值时的额外空间或零的功能。
我经常发现与数据类型相关的术语“位填充”,但不明白它是什么,也不知道它对这些有什么作用。
非常感谢您提供任何基于主题的答案。