64bit 리눅스 gcc 데이터 타입별 사이즈
2009/09/15 10:12
gcc - 64bit (by RHEL) char : 1 byte signed char : 1 byte unsigned char : 1 byte short : 2 byte unsigned short : 2 byte int : 4 byte unsigned int : 4 byte long : 8 byte unsigned long : 8 byte float : 4 byte double : 8 byte long double : 16 byte
VC-x64 에서는 long type이 4byte.
그러므로 DWORD 도 마찬가지로 4byte이다.
(포인터 타입 제외하고는 32bit시스템과 거의 같다고 보면 되겠다.)
결론 : DWORD / WORD 따위 쓰지말고 INT16 INT32 처럼 쓰자.


64비트에서는 데이터 타입도 확장될까 싶었는데 거진 변한게 없네영, 오굳쏘굳
아무래도 소스코드 호환성을 위해 그리한듯 싶은데,
long 타입 사이즈가 gcc랑 vs가 달라서 ㅎㄷㄷ
portable한 프로그램을 짜다보면 int/long/long long 따위를 쓰지 않게 되죠. ILP에 따라서 완전히 엉망이 되니.. 말씀하신대로 type-width_t 방식이 제일 좋은 것 같습니다. 그런데 이러다 보면 format string도 바꿔야 해서 좀 짜증이 나더라고요. 흑흑
따로 define 해서 쓰는거 싫어해서
int8_t int16_t int64_t 따위를 씀.
근데 이것도 시발 msvc는 __int8 __int32 이딴식