论坛: 编程破解 标题: mastercomein结构体占用的内存字节数 复制本贴地址    
作者: 迈克老狼 [changfeng]    论坛用户   登录
#include<stdio.h>
int main()
{
  struct data1
  {
    char i;
    int ch;
    float f;
  }d1;
  union data2
  {
    int i;
    char ch;
    float f;

  }d2;
  int num1=sizeof(d1);
  int num2=sizeof(d2);
  int num3=sizeof(int);
  printf("%d\t%d\t%d\n",num1,num2,num3);
  return 0;
}
显示是
12  4  4
为什么不是
7    4  4

地主 发表时间: 05-03-21 22:49

回复: 286 [unique]   版主   登录
C编译器有时为了自己读写方便,在编译时,会使结构中的某些位“对齐”,不足的补位,超过的补后以成倍的数量分配。

不同编译器结果不一样。所以你在TC下显示这个结果,在VC下也许就不是这样。

B1层 发表时间: 05-03-22 09:03

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号