Dan*_*eer 19 c c++ portability types visual-c++
偶尔我需要使用固定宽度的整数与PLC等外部设备进行通信.我还使用它们来定义位掩码并执行图像数据的位操作.AFAIK C99标准定义了像int16_t这样的固定宽度整数.但是我使用的编译器,VC++ 2008不支持C99和AFAIK微软不打算支持它.
我的问题是在C++中使用固定宽度整数的最佳实践是什么?
我知道VC++定义了非标准的固定宽度整数,如__int16,但我对使用非标准类型犹豫不决.下一个C++标准是否会定义固定宽度的整数?
Meh*_*ari 18
您可以使用某些#ifdef指令解决问题.
#ifdef _MSC_VER
typedef __int16 int16_t
#else
#include <stdint.h>
#endif
Run Code Online (Sandbox Code Playgroud)
Hrv*_*eša 12
Boost具有适用于所有C99类型的typedef以及更多: "Boost integer library"