2004년 5월 13일 목요일

c언어 struct의 bytes 수(size, 크기)

$ cat a.c

#include <stdio.h>

typedef struct {
    unsigned short outdegree; // 2bytes
    float pagerank; // 4bytes
} value_t;

int main()
{
    printf("sizeof(unsigned short) : %d\n", sizeof(unsigned short));
    printf("sizeof(float) : %d\n", sizeof(float));
    printf("sizeof(value_t) : %d\n", sizeof(value_t));


    return 0;
}

$ ./a.out
sizeof(unsigned short) : 2
sizeof(float) : 4
sizeof(value_t) : 8

-------------------------------------
struct로 만들면 architecture에서 4bytes 단위로 값을 이용하므로 2+4가 원래 6이지만 8bytes로 padding하는 것 같다.

댓글 없음:

댓글 쓰기