为什么一个成员也没有的struct也占八个字节

capfdipoe 2001-08-07 08:00:11
#include <stdio.h>
#pragma hdrstop
struct A{
};
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
printf("the length of A is %d bytes",sizeof(struct A*));
return 0;
}我用上面的程序测试了一下
结果为8
而如果struct中有一个int的话结果居然为四。我真的搞不懂。没有成员的struct必有成员的struct占用的地方还多
我是用bcb的console wizard运行上面程序的。
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCB 2001-08-08
  • 打赏
  • 举报
回复
projects->options->Advanced compiler->Data Alignment->Byte
capfdipoe 2001-08-08
  • 打赏
  • 举报
回复
BCB:
字边界对齐是不是就是自动补足四字节?
如何去掉?
BCB 2001-08-07
  • 打赏
  • 举报
回复
是8,
但去掉字边界对齐,结果为1
capfdipoe 2001-08-07
  • 打赏
  • 举报
回复
我也弄不懂啊!
Againstwind 2001-08-07
  • 打赏
  • 举报
回复
C++编译器会自动将变量不足4字节的补为4字节,难道为空时它会默认初始化为8个字节???

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧