我希望能够写int32
代替int
和uint64
而不是unsigned __int64
。我可以通过创建名为typedef
的文件来使用PrimitiveTypes.h
来完成此任务。
typedef signed char int8;
typedef signed short int16;
typedef signed int int32;
typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned int uint32;
typedef unsigned int uint;
typedef __int64 int64;
typedef unsigned __int64 uint64;
现在,我可以在每个需要使用原语的文件中包含PrimitiveTypes.h
,结果证明它非常接近每个文件。
也许这是不好的做法,但是有没有办法在全局添加重新定义,所以我不必在每个文件中手动包含新原语,或者可能是问题的另一种解决方案?我正在使用Visual Studio,以防有任何特定的解决方案。
答案 0 :(得分:2)
在标准c ++中,我们有<cstdint>
标题。
只是说
#include <cstdint>
对于较旧的标准,您通常可以依赖
#include <stdint.h>
是的,您必须将它包含在您使用这些类型的每个文件中。你可能有一个项目中央头文件,无论如何它都包含在内。
答案 1 :(得分:1)
有一个/FI
开关强制在第一行代码之前包含一个标题。
但通常你只是把它放在预编译的头文件中。你在评论中提到一个大的预编译头是一个坏主意。事实上,反过来说。一大堆非预编译头文件是一个坏主意。您希望尽可能多地预编译,即使大多数文件不需要完整集。