据我所知,size_t和wchar_t的表示完全是特定于平台/编译器的.例如,我已经读过Linux上的wchar_t现在通常是32位,但在Windows上它是16位.有没有什么方法可以在我自己的代码中将这些标准化为一组大小(int,long等),同时仍然保持与两个平台上现有标准C库和函数的向后可比性?
我的目标基本上是做类似的设置,因此它们是一组尺寸.这可能不会破坏某些东西吗?我应该这样做吗?有没有更好的办法?
更新:我想这样做的原因是我的字符串编码在Windows和Linux上都是一致的
谢谢!
听起来你正在寻找C99和C++ 0x的<stdint.h>/ <cstdint>标题.这定义了类似uint8_t和的类型int64_t.
cstdint.hpp如果您没有这些标题,可以使用Boost .