program tip

C99 stdint.h 헤더 및 MS Visual Studio

radiobox 2020. 7. 25. 10:47
반응형

C99 stdint.h 헤더 및 MS Visual Studio


놀랍게도 C99 stdint.h가 MS Visual Studio 2003에서 누락되었다는 것을 알게되었습니다. 나는 그들의 이유가 있다고 확신하지만 사본을 어디서 다운로드 할 수 있는지 아는 사람이 있습니까? 이 헤더가 없으면 uint32_t 등과 같은 유용한 유형에 대한 정의가 없습니다.


이 헤더의 MS 버전을 다음에서 다운로드 할 수 있습니다.

https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h

휴대용은 여기에서 찾을 수 있습니다 :

http://www.azillionmonkeys.com/qed/pstdint.h

Software Rambling 의 블로그 덕분 입니다.


직접 정의하십시오.

#ifdef _MSC_VER

typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;

#else
#include <stdint.h>
#endif

업데이트 : Visual Studio 2010Visual C ++ 2010 Express 에는 모두가 있습니다 stdint.h. 에서 찾을 수 있습니다C:\Program Files\Microsoft Visual Studio 10.0\VC\include


Visual Studio 2003-2008 (Visual C ++ 7.1-9)은 C99 호환이라고 주장하지 않습니다. (의견에 대한 rdentato 감사합니다.)


Boost에는 원하는 유형의 cstdint.hpp 헤더 파일이 포함되어 있습니다. http://www.boost.org/doc/libs/1_36_0/boost/cstdint.hpp


Microsoft는 C99를 지원하지 않으며 어떤 계획도 발표하지 않았습니다. 나는 그들이 C ++ 표준을 추적하려고한다고 생각하지만 C ++의 하위 집합을 제외하고는 C를 효과적으로 쓸모없는 것으로 간주합니다.

Visual Studio 2003 이상의 새 프로젝트에는 기본적으로 "C ++ 코드로 컴파일 (/ TP)"옵션이 설정되어 있으므로 모든 .c 파일은 C ++로 컴파일됩니다.


또 다른 휴대용 솔루션 :

POSH : 휴대용 오픈 소스 하네스

"POSH는 플랫폼 간 라이브러리 및 애플리케이션 작성을 작성하고 이식하는 것이 훨씬 덜 지루하도록 설계된 단순하고 이식 가능하며 사용하기 쉽고 통합하기 쉽고 유연한 오픈 소스"하네스 "입니다."

http://poshlib.hookatooka.com/poshlib/trac.cgi

책에서 설명하고 사용하는 방법 : 이식 가능한 코드 작성 : 여러 플랫폼 용 소프트웨어 개발 소개 작성자 : Brian Hook http://books.google.ca/books?id=4VOKcEAPPO0C

제이슨

참고 URL : https://stackoverflow.com/questions/126279/c99-stdint-h-header-and-ms-visual-studio

반응형