有没有一种很好的方法来修改C ++中的类,使其整数在64位系统上为64位,在32位系统中为32位?有没有办法检查?
该课程类似于:
class B{
public:
int64_t size();
private:
int64_t m_size();
}
答案 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
进行检查。