全局重命名原始数据类型?

时间:2014-05-14 08:40:34

标签: c++ visual-studio

我希望能够写int32代替intuint64而不是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,以防有任何特定的解决方案。

2 个答案:

答案 0 :(得分:2)

在标准c ++中,我们有<cstdint>标题。
只是说

#include <cstdint>

对于较旧的标准,您通常可以依赖

#include <stdint.h>

是的,您必须将它包含在您使用这些类型的每个文件中。你可能有一个项目中央头文件,无论如何它都包含在内。

答案 1 :(得分:1)

有一个/FI开关强制在第一行代码之前包含一个标题。

但通常你只是把它放在预编译的头文件中。你在评论中提到一个大的预编译头是一个坏主意。事实上,反过来说。一大堆非预编译头文件是一个坏主意。您希望尽可能多地预编译,即使大多数文件不需要完整集。