是否有任何标准宏可用于在编译时识别基本类型的大小?与海湾合作委员会类似:
__SIZEOF_INT__
__SIZEOF_LONG__
__SIZEOF_LONG_LONG__
__SIZEOF_SHORT__
__SIZEOF_POINTER__
__SIZEOF_FLOAT__
__SIZEOF_DOUBLE__
__SIZEOF_LONG_DOUBLE__
__SIZEOF_SIZE_T__
我记得在某个地方看到了类似的东西但是为了我的死,我无法找到或记住他们的名字。我最感兴趣的是长型。
答案 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