ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 패딩비트
    개발하면서/etc 2009.04.02 23:49

    #include <stdio.h>
    #include <stdlib.h>
    
    struct first 
    {   
        char a;   
        int b;   
        char c;   
        int d;   
    };   
      
    struct last   
    {   
        char e;   
        char f;   
        int g;   
        int h;   
    };  
    
    int main()
    {
    	struct first kang;
    	struct last han;
    
    	han.g = 13;
    	han.h = 14;
    	han.e = 'w';
    	han.f = 'q';
    	
    	kang.c = 'd';
    	kang.b = 32;
    	kang.a = 'c';
    	kang.d = 14;
    
    	printf("%d\n", sizeof(kang));
    	printf("%d\n", sizeof(han));
    	return 0;
    }
    


    kang, han 구조체 모두 char형 2개 int형 2개 선언을 하였는데 왜 크기는 다른것인가?
    그것은 바로 패딩비트가 추가되었기 때문이다.

    32비트환경의 컴퓨터는 자료를 읽어올때 32비트씩 읽어온다.
    char형, int형 관계없이 우선 시작하는 주소로부터 32비트, 4바이트를 읽어온다.
    int는 4바이트니까 상관없지만 char형의 경우, 읽어온후 다시 char형만 읽기 위해 자르는 연산을 한다.


     

    댓글 0

Designed by Tistory.