原始类型的标准sizeof宏

时间:2016-04-16 20:00:52

标签: c++11 macros standards sizeof primitive

是否有任何标准宏可用于在编译时识别基本类型的大小?与海湾合作委员会类似:

__SIZEOF_INT__
__SIZEOF_LONG__
__SIZEOF_LONG_LONG__
__SIZEOF_SHORT__
__SIZEOF_POINTER__
__SIZEOF_FLOAT__
__SIZEOF_DOUBLE__
__SIZEOF_LONG_DOUBLE__
__SIZEOF_SIZE_T__

我记得在某个地方看到了类似的东西但是为了我的死,我无法找到或记住他们的名字。我最感兴趣的是长型。

1 个答案:

答案 0 :(得分:0)

原始类型的大小没有标准的宏定义。

在boost / atomic中,有一些宏给你原始类型的大小,它们在其他源中使用boost / cstdint.hpp。示例如下所示:

#include <iostream>
#include <boost/atomic.hpp>

int main() {
    std::cout << BOOST_ATOMIC_DETAIL_SIZEOF_LONG;
}

参考: http://www.boost.org/doc/libs/1_60_0/boost/atomic/detail/int_sizes.hpp