重新定义原始类型以快速更改 RAM 使用、更好的可读性(并可能提高性能)

Redefine primitive types for quick change of RAM usage, better readability, (and possibly improving performance)

在多个程序中花费了相当长的时间后,我发现,根据平台的不同,有时我需要大幅降低 RAM 使用率,因为某些平台上的资源非常有限。我通常根据这些类型存储大型映射和矩阵,因此从 int32 切换到 int16 或从 float 切换到 double(以防它们实际上大小不同)很容易将我的使用量减少近一半。 因此,我刚刚添加了重新定义:

typedef double Float;
typedef int32_t Int;
typedef uint32_t UInt;

这使我能够快速调整程序中所有重要的原始类型。请注意,我在程序中的整数 none 实际上超过了 2 字节整数的大小,因此使用 int16 到 int64 中的任何一个都没有问题。

此外,用一个漂亮的 "Int" 代替 "uint32_t" 似乎更具可读性。在某些情况下,我观​​察到通过减少和增加基本类型的大小来提高性能。

我的问题是:是否有任何我忽略的缺点?我在 SO 上还找不到关于这个主题的任何信息,所以如果我也错过了,请带我去那里。该代码主要是为我准备的,其他人可能会看到它,但在任何情况下,它都会由我亲自提供或与适当的文档一起提供。

编辑:对过去的错误感到抱歉,我确实使用了 typedef。

typedef int32_t Int; 不错,但 typedef double Float; 不好。因为它令人困惑:a Float 实际上是 double!?

为什么不使用预处理器定义两组类型,一组用于large类型,一组用于small类型。

#ifdef LARGE
typedef int32_t Int;
typedef double Real;
#else
typedef int16_t Int;
typedef float Real;
#endif
void f() {
    cout << sizeof(Int) << endl;
    cout << sizeof(Real) << endl;
}

要使用 large 类型:g++ -o test test.cpp -DLARGE

要使用 small 类型:g++ -o test test.cpp