각종 자료형들의 크기에 대해서는 흔하지만,


32비트와 64비트에서 각각 다른 부분에 대해서 명확하게 보기 위해서 작성했습니다.



#include <stdio.h>


int main(void)

{

int value;


printf("char: %d\n", sizeof(char));

printf("short: %d\n", sizeof(short));

printf("int: %d\n", sizeof(int));

printf("long: %d\n", sizeof(long));

printf("long long: %d\n", sizeof(long long));

printf("float: %d\n", sizeof(float));

printf("double: %d\n", sizeof(double));

printf("pointer: %d\n", sizeof(&value));


getchar();

return 0;

}



파일의 소스 코드이구요.


각각 32비트와 64비트로 컴파일 한 파일을 게시하겠습니다.


각종 변수 크기 측정x86.exe

각종 변수 크기 측정x64.exe


각각 다운 받아서 실행해보시면 되구요.





먼저 32비트의 사진입니다.

나머지 아시던대로고 포인터가 4바이트 입니다.



64비트는 32비트에서 포인터 외에 달라진 점이 없네요.






int와 포인터는 1 word를 따를 줄 알았는데.


int 형의 경우에는 4바이트로 고정값이 되어 있습니다.



이에 대해서 검색해서 알아본 결과


32비트와의 호환성을 위하여 int형의 경우에는 고정이라고 하네요...



포인터는 그냥 1 word 값을 따르고요~


댓글 작성