VC에서의 데이터 크기??
글쓴이: hie / 작성시간: 화, 2006/11/07 - 9:38오전
처음으로 VC를 이용해서 작업을 하게 되었습니다.
항상 쓰던데로 작업을 진행했는데.. 결과가 황당하네요.
하단의 코드를 컴파일해서 실행시키면 GCC는 그 크기를 4로 나타냅니다.
그런데.. VC에서는 그렇지 않군요.. 컴파일러 옵션을 주어야 할 듯 한데..
모르겠습니다. 고수님들의 고견을 듣고 싶습니다.
#include<stdio.h>
#pragma pack(1)
typedef struct s_test
{
unsigned long item_a:24;
unsigned char item_b;
} test_s;
#pragma pack()
int main()
{
test_s test;
printf( "\n Size( pack : test ) = %d", sizeof(test) );
return( 0 );
}Forums:


굳이 #pragma pack(1)
굳이 #pragma pack(1) 옵션을 쓰셔야 한다면 얘기가 다르겠습니다만...
위의 코드는 32비트를 24비트와 8비트의 비트 필드로 나눌 목적으로 쓰이는 것 같습니다. 그렇다면 차라리 완전한 비트 필드 선언을 해주시는 편이 나을 듯 합니다.
#include<stdio.h> typedef struct s_test { unsigned long item_a:24; unsigned long item_b:8; } test_s; int main() { test_s test; printf( "\n Size( pack : test ) = %d", sizeof(test) ); return( 0 ); }댓글 달기