32bit OS 에서는 int 타입과 long 타입이 다 같이 4바이트의 크기를 갖지만.
64bit OS 에서는 int 타입이 4바이트, long 타입이 8바이트의 크기를 갖는다.
그렇다면 64비트 리눅스 환경에서 32비트 용으로 작성된 C 소스를 gcc 로 컴파일하려면 어떻게 해야 할까?
// Filename: testIntSize.c
int main()
{
#include <stdio.h>
int main()
{
printf("sizeof(int) = %d\n", sizeof(int));
printf("sizeof(long) = %d\n", sizeof(long));
return 0;
}
# 64비트 용으로 컴파일하고 실행하기
$ gcc -o testIntSize testIntSize.c
$ ./testIntSize
sizeof(int) = 4
sizeof(long) = 8
# 32비트 용으로 컴파일하고 실행하기 (옵션 -m32 추가)
$ gcc -m32 -o testIntSize testIntSize.c
$ ./testIntSize
sizeof(int) = 4
sizeof(long) = 4
'프로그래밍 > C' 카테고리의 다른 글
Visual C++ 2010 과 pdcurses 를 이용한 helloworld 예제 (0) | 2014.01.15 |
---|---|
gcc 와 ncurses 를 이용한 카라슈바 곱셈 연습기 (0) | 2014.01.08 |
오일러(Euler) phi 함수 구현하기 (0) | 2013.12.14 |
long long 타입의 정수를 printf 함수로 출력하기 (0) | 2013.12.03 |
C 언어에서 동작하는 쓰레기 수집기(Garbage collector) (0) | 2013.10.19 |