我发现在 C99 中应该使用
#include <stdint.h>
,而且这个头文件似乎也适用于我的 C++03 gcc 编译器,但是对于现代 C++ 来说,这个头文件是否正确且可移植呢?#include <stdint.h>
,而且这个头文件似乎也适用于我的 C++03 gcc 编译器,但是对于现代 C++ 来说,这个头文件是否正确且可移植呢?<cstdint>
中。<stdint.h>
中找到它。C++中的标准头文件为cstdint
#include <cstdint>
在stdint.h中定义:
#include <stdint.h>
uintptr_t
,但不会在 namespace std
中定义。你可以期望所有以 .h
结尾的标准头文件都不会使用命名空间。 - Drew Dormannnamespace std
中。同样,C++头文件的类比需要将它们的名称放入namespace std
中,并且现在也允许将它们放在全局命名空间中(这是对现有实现的一种妥协)。 - Pete Becker需要包含cinttypes
或cstdint
。
<cinttypes>
没有定义 uintptr_t
。它主要定义了一些宏,可以在使用 printf
和 scanf
及其衍生函数时作为格式说明符使用,用于 <cstdint>
中定义的类型。 - Pete Becker<cinttypes>
包括 <cstdint>
。 - obataku这是C99中的可选类型,位于文件中。许多C++03编译器都提供了该文件。它也出现在C++11中,位于文件中,同样是可选的,并且引用C99进行定义。包含 stdint.h