Linux C에서 Windows 용 Visual C ++로 코드를 이식하고 있습니다.
Visual C ++는 알지 못 #include <stdint.h>
하므로 주석 처리했습니다.
나중에 이러한 'uint32_t': identifier not found
오류를 많이 발견했습니다 . 어떻게 해결할 수 있습니까?
Linux C에서 Windows 용 Visual C ++로 코드를 이식하고 있습니다.
Visual C ++는 알지 못 #include <stdint.h>
하므로 주석 처리했습니다.
나중에 이러한 'uint32_t': identifier not found
오류를 많이 발견했습니다 . 어떻게 해결할 수 있습니까?
uint32_t
및 기타 정확한 폭 정수 유형, C99 및 C ++ 0X의 일부가 너무 오래된 컴파일러 (비주얼 C와 같은 ++ 2008 및 이전 버전)을 필요가 없습니다.
답변:
이 유형은 <stdint.h>
C ++ 11 표준의 일부이지만 C ++ 03의 표준이 아닌 C 헤더에 정의되어 있습니다. 헤더의 Wikipedia 페이지에 따르면 VS2010까지 Visual Studio와 함께 제공되지 않았습니다.
그 동안 Microsoft의 사용자 지정 정수 유형 을 C에서 예상하는 유형에 typedef
매핑 하는 s를 추가하여 자신의 헤더 버전을 가짜로 만들 수 있습니다 . 예를 들면 다음과 같습니다.
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
도움이 되었기를 바랍니다!
__int32
.
u_int32_t
와 uint32_t
동일한 유형 아니다; 하나는 u
. 그것은 별도의 문제처럼 보입니다.
나는 동일한 오류가 있으며 파일에 다음을 포함하여 수정했습니다.
#include <stdint.h>
파일 시작 부분에.
msinttypes 프로젝트 페이지 에서 사용할 수있는 구현이 있습니다. "이 프로젝트는 Microsoft Visual Studio에서 stdint.h 및 inttypes.h의 부재를 채 웁니다."
이 구현에 대한 경험이 없지만 다른 사람들이 권장하는 것을 보았습니다.
Windows에서는 일반적으로 Windows 유형을 사용합니다. 그것을 사용하려면 <Windows.h>
.
이 경우 uint32_t는 UINT32 또는 UINT입니다.
모든 유형 정의는 다음과 같습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx