为什么在C或C++中使用"long long"会是一件坏事?
我前几天正在编译一个运行时库,在它检查的代码中查看long是否为64位,如果不是则使用long long.但随之而来的是,它发出了一个#warning"使用long long".除非是开发人员的残留调试,否则我想不出任何"长期"警告的原因.
谢谢Chenz
Unc*_*ens 10
据我所知,long long目前只有C99标准.它也将是C++ 0x中的一种类型,但大多数现代编译器都应该支持它.
但是,对于固定大小的整数,可以使用C99标头<stdint.h>,或者使用C++<boost/cstdint.hpp>
我同意Thomas Padron-McCarth的观点.最好分别检查int64_t(signed)或uint64_t(unsigned)是否存在,并在它们存在时使用它们.这是导致size_t的同样的理智.
它不便携.具体来说,Windows编译器并不使用支持long long,而是必须使用__int64和unsigned __int64(但不能在非Windows平台上使用).
这是不久前的,所以也许现在总是有更好的机会让uint64_t和int64_t可用.