C :: gcc 컴파일러에서 자료형의 크기는 얼마?
C언어로 sizeof() 함수를 이용하여 구해봤습니다. 환경은 32 bit 입니다.

대체로 Visual C++의 자료형 크기와 동일한 값이 나옵니다. 다만, long double 형의 크기가 더 크게 나왔습니다. Visual C++에서는 double와 동일하게(실제로는 지원하지 않는거죠) 8 byte 이지만, Monodevelop에서는 12 byte 입니다. 터보 C가 10 byte 인데, 범위가 3.4*10-4932 ~ 1.1*104932 이라고 하네요. 우와! 그럼, 12 byte 이면? 시간 내서 어느 정도의 범위를 표현할 수 있는지 구해봐야겠습니다.
결론적으로, Monodevelop이 컴파일러로 gcc를 사용하니까 이 결과는 gcc의 결과라고 봐도 되겠지요?
참고 문헌
자료형 :: http://www.cworldlab.com/CandCplus/c/c-11.htm
실수 데이터의 표현 방식 :: http://mkexdev.net/article/content.asp ··· Bid%3D98
+- m * ne :: http://mkexdev.net/article/content.asp ··· Bid%3D99
덧붙임

이건 Code Blocks에서 돌린 결과입니다. Monodevelop의 결과와 같은 걸 보니 역시 원인은 gcc 컴파일러이네요. 당연한 거 아니냐구요? 전 그 당연한 걸 여태 몰랐다는... 부끄.
알고보니 C/C++ 컴파일러 종류도 많더라구요. 기본적인 gcc와 Visual C++에서 쓰이는 Intel 컴파일러 외에도 여러 가지 있더군요. 이제서야 이런 걸 알게 되다니 공부 열심히 해야겠습니다. 아래는 이번에 쓰인 코드입니다.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("char : %d byte \n", sizeof(char));
printf("signed char : %d byte \n", sizeof(signed char));
printf("unsigned char : %d byte \n", sizeof(unsigned char));
printf("short : %d byte \n", sizeof(short));
printf("unsigned short : %d byte \n", sizeof(unsigned short));
printf("int : %d byte \n", sizeof(int));
printf("unsigned int : %d byte \n", sizeof(unsigned int));
printf("long : %d byte \n", sizeof(long));
printf("unsigned long : %d byte \n", sizeof(unsigned long));
printf("float : %d byte \n", sizeof(float));
printf("double : %d byte \n", sizeof(double));
printf("long double : %d byte \n", sizeof(long double));
return 0;
}"0x08 과거의 글모음 / 내 머리 속의 노트" 분류의 다른 글
| 블로그(텍스트큐브) 서버를 직접 만들어보기 - OS & Package 설치 | 2011/02/16 |
| C/Linux :: 리눅스에서 파일 덤프... dump.c | 2010/12/05 |
| C/Linux :: ls -l 을 수행하는 ll.c | 2010/10/30 |
| python :: Socket Communication with Thread | 2010/10/10 |
| 리눅스(우분투)에서 부경대학교 무선랜 접속하기 | 2010/07/19 |