CSDN论坛 > C/C++ > C语言

c++中空的结构体的长度问题 [问题点数:20分,结帖人starsoft007]

Bbs4
本版专家分:1542
结帖率 100%
CSDN今日推荐
Bbs8
本版专家分:43482
Blank
红花 2011年12月 C/C++大版内专家分月排行榜第一
2011年11月 C/C++大版内专家分月排行榜第一
2011年10月 C/C++大版内专家分月排行榜第一
2010年4月 C++ Builder大版内专家分月排行榜第一
2008年9月 C++ Builder大版内专家分月排行榜第一
2008年8月 C++ Builder大版内专家分月排行榜第一
2007年1月 C++ Builder大版内专家分月排行榜第一
2004年3月 C/C++大版内专家分月排行榜第一
2006年12月 C++ Builder大版内专家分月排行榜第一
Blank
黄花 2010年4月 Delphi大版内专家分月排行榜第二
2010年3月 C++ Builder大版内专家分月排行榜第二
2009年9月 C++ Builder大版内专家分月排行榜第二
2005年10月 Java大版内专家分月排行榜第二
2006年11月 C++ Builder大版内专家分月排行榜第二
2006年10月 C++ Builder大版内专家分月排行榜第二
2006年9月 C++ Builder大版内专家分月排行榜第二
2006年7月 C++ Builder大版内专家分月排行榜第二
2004年1月 C++ Builder大版内专家分月排行榜第二
2006年1月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2010年5月 C++ Builder大版内专家分月排行榜第三
2006年8月 C++ Builder大版内专家分月排行榜第三
2004年2月 C++ Builder大版内专家分月排行榜第三
2003年8月 C++ Builder大版内专家分月排行榜第三
2006年4月 Delphi大版内专家分月排行榜第三
2005年12月 Delphi大版内专家分月排行榜第三
Bbs4
本版专家分:1721
版主
Blank
黄花 2012年4月 C++ Builder大版内专家分月排行榜第二
2011年4月 C++ Builder大版内专家分月排行榜第二
2009年12月 C++ Builder大版内专家分月排行榜第二
2009年11月 C++ Builder大版内专家分月排行榜第二
2009年10月 C++ Builder大版内专家分月排行榜第二
2009年8月 C++ Builder大版内专家分月排行榜第二
2007年5月 C++ Builder大版内专家分月排行榜第二
2002年5月 C++ Builder大版内专家分月排行榜第二
2001年10月 C++ Builder大版内专家分月排行榜第二
Blank
蓝花 2013年5月 C++ Builder大版内专家分月排行榜第三
2012年7月 C++ Builder大版内专家分月排行榜第三
2012年5月 C++ Builder大版内专家分月排行榜第三
2011年5月 C++ Builder大版内专家分月排行榜第三
2011年3月 C++ Builder大版内专家分月排行榜第三
2010年12月 C++ Builder大版内专家分月排行榜第三
2010年10月 C++ Builder大版内专家分月排行榜第三
2010年1月 C++ Builder大版内专家分月排行榜第三
2009年9月 C++ Builder大版内专家分月排行榜第三
2009年7月 C++ Builder大版内专家分月排行榜第三
2009年6月 C++ Builder大版内专家分月排行榜第三
2009年5月 C++ Builder大版内专家分月排行榜第三
2006年3月 C++ Builder大版内专家分月排行榜第三
2005年9月 C++ Builder大版内专家分月排行榜第三
Bbs3
本版专家分:775
Bbs1
本版专家分:79
Bbs1
本版专家分:21
匿名用户不能发表回复!
其他相关推荐
C结构体之位域(位段)结构体大小
struct Cstruct { int x:1; int y:14; int Z:32; int W:1; }; ret=sizeof(struct Cstruct); =12 //硬是没明白  1. 一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元
C语言结构体里的成员数组(长度为0)和指针---from coolshell
单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。 为了方便你把代码copy过去编译和调试,我把代码列在下面: 1 2
C语言结构体数组的直接赋值及数组的长度计算
一般情况下,对结构体类型的变量或者结构体类型的数组的赋值都是先定义一个结构体类型的变量,然后在对其属性进行赋值。例如: typedef struct Pi { int x; int y; } Pc; int main() { int i; Pc pc[2]; pc[0].x = 1; pc[0].y = 2; pc[1].x = 3; ...
c语言变长结构体
1.什么是变长数组 struct MyData { int nLen; char data[0]; }; sizeof(MyData)=4; 可能有的编译器不支持char data[0];需要用char data[1];代替,这样上面结构体大小是sizeof(MyData)=8(字节对齐); 在上结构中,data是一个数组名;但该数组没有元素;该数组的真实地址紧随结构
结构体定义使用及指针长度问题
1.结构体定义
使struct对象拥有可变大小的数组
结构体中最后一个元素是长度为0的数组 在Linux源代码中,有很多的结构体最后都定义了一个元素个数为0个的数组,如/usr/include/linux/if_pppox.h中有这样一个结构体:  struct pppoe_tag {      __u16 tag_type;      __u16 tag_len;      char tag_data[0]; 
C语言(地址对齐和结构体大小)
结构体的大小取决于每个成员的大小以及他们的地址对齐要求,由于地址需要对齐,因此结构体内部一般都存在填充现象。   拓展: 变量的地址需要对齐意味着:在内存中开辟一块空间(即变量)的时候,并不是随便搞一块适当大小的内存就可以了,我们对这块内存的地址是有要求的,比如int型或者double型数据的地址必须是4的整数倍,再如short型数据的地址必须是2的整数倍等等,这些要求,就是所谓
由sizeof求结构体大小时涉及到的数据对齐
本博文转自http://www.cnblogs.com/dolphin0520/    作者:海子 结构体字节对齐       在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各
【C++】计算struct结构体占用的长度
关于结构体和类所占用的长度计算方式介绍。 struct A { char a[5]; int b; short int c; }structA; 在上例中,要计算 sizeof(a) 是多少? 有两个原则: 1)各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数 即当 A中的a占用了5个字节后,b需要占用四个字节,此
结构体长度问题
为了加快数据存取的速度,编译器默认情况下会对结构体成员和结构体本身(实际上其他数据对象也是如此)存储位置进行处理,使其存放的起始地址是一定字节数的倍数,而不是顺序存放,称为字节对齐。字节对齐的规则为: (1)结构体变量的首地址能够被其最宽基本类型成员的大小所整除; (2)结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节; (3)结构体的总大小为结构体最宽基本类型成员
关闭