wss71104307 发表于 2013-2-4 22:06:43

sizeof

#include <stdio.h>structs1{      inta;      char b;      char c;      char d;};structs2{      char b;      char c;      char d;};int main(){       printf("the result is:%d %d %d",sizeof(int),sizeof(struct s2),                                          sizeof(struct s1));}  
the result is 4,14,20.在没有int的情况下,原来多大就多大.在有int的情况下:1.int在所有的char之前a.若后面所有的char长度之和mod 4=0,则原来多大就多大.    b.若其之和mod 4!=0;则它会把该和变成mod 4=0;   例如:sturct s1{                  int i;                  char ch0;                  char ch1;                  };的大小是12,1+5=6,6改成8;          struct s1{                  int i;                  char ch0;                  char ch1;                  char ch2;                  };的大小是12;1+5+2=8,mod 4=0;2.若int在所有的char之后如同int在所有的char之前.3.若是char与int混杂,则可以如前分开来算.例如:struct s1{                   char ch0;//1变成4;                   int i0;//4                   char ch1;                   char ch2;//5+2=7;变成8;                   int i1;//4                   char ch3;//2 变成4;                   int i2; //4                   };.//大小为4+4+8+4+4+4=28;
页: [1]
查看完整版本: sizeof