64位和32位整数

Tri*_*sha 3 c++

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

这个类是这样的:

class B{
      public:
            int64_t size();
      private:
            int64_t m_size();
}
Run Code Online (Sandbox Code Playgroud)

Mys*_*ial 6

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

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

编辑:

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

  • @SimonRichter:`ptrdiff_t`是指针偏移的标准符号类型.`ssize_t`是Posix类型,通常表示"大小或错误代码"而不是带符号的偏移量. (2认同)