64位和32位整数

时间:2011-11-08 07:45:50

标签: c++

有没有一种很好的方法来修改C ++中的类,使其整数在64位系统上为64位,在32位系统中为32位?有没有办法检查?

该课程类似于:

class B{
      public:
            int64_t size();
      private:
            int64_t m_size();
}

3 个答案:

答案 0 :(得分:6)

如果你真的想要你所说的(32位32位和64位64位),你需要使用宏。

但你可能想要的只是使用size_t

编辑:

保证

size_t足够大,可以调整任何对象的大小并索引任何数组。因此,它通常在32位上为32位,在64位上为64位。所以它可能正是你想要的。

答案 1 :(得分:2)

intptr_t,可用于您可能想到的邪恶目的。

答案 2 :(得分:1)

您可以使用long int。 AFAIK long int与32位编译器中的int(4字节整数)相同,与64位编译器中的long long int(8字节整数)相同。您可以使用sizeof进行检查。