2012-07-16 8 views
1

헤더 stdint.h는 모든 시스템에서 32 비트로 u32를 어떻게 정의합니까? 누군가 stdint.h가 이런 일을하도록하는 과정을 상세히 설명 할 수 있습니까? 내 컴퓨터의 (Windows 7) stdint.h 파일은 어디에서 찾을 수 있습니까?C 타입 선언 intN_t

답변

2

stdint.h는 C99에 있으며 (2008 아래 버전의 VC++는 C89 만 구현 함)이 파일을 Win7 컴퓨터에 설치하려면 VisualStudio 2010 (또는 이상)이 설치되어 있어야합니다. 그런 다음이 파일은 MSVS 설치의 "VC \ include \ stdint.h"폴더에 있습니다.

MinGW (Win32 용 gcc toolchain) 및 Cygwin (Windows 컴퓨터 용 POSIX 계층)에는 "include"디렉토리에 stdint.h 파일이 포함되어 있습니다.

질문 : uintN_t 유형의 "마법"은 일반적으로 조건부 컴파일을 사용하여 구현됩니다. Windows에서는 _WIN32, x64 대상에서는 _WIN64와 같이 사전 정의 된 기호 (컴파일러에 의해)가있을 수 있습니다. 으로 VisualStudio의 2008 년 이전 버전의

별도의 stdint.h 구현있다 : http://msinttypes.googlecode.com/svn/trunk/stdint.h

+0

'stdint.h'는 POSIX에 들어가기 전에 C99에서옵니다. – ouah

+0

좋은 지적, 나는 그것을 고칠 것이다 :) –

3

컴파일러 툴체인 용 C 표준 라이브러리 제공 업체는 해당 특정 배포에 맞는지 확인합니다. 아마도이 경우를 보장하는 데 필요한 모든 수단을 사용할 수 있습니다. int 또는 long으로 typedef할지 여부를 아는 것만 큼 간단 할 수 있습니다.

+0

'intN_t'는 항상'가 존재하는 경우 typedef' (이러한 유형의 선택 사항입니다). – ouah