c++ - C++ 中的定宽整数

标签 c++ c visual-c++ types portability

有时我需要使用固定宽度的整数与 PLC 等外部设备进行通信。我还使用它们来定义位掩码并执行图像数据的位操作。 AFAIK C99 标准定义了固定宽度的整数,如 int16_t。但是我使用的编译器 VC++ 2008 不支持 C99 并且 AFAIK 微软不打算支持它。

我的问题是在 C++ 中使用固定宽度整数的最佳做法是什么?

我知道 VC++ 定义了像 __int16 这样的非标准定宽整数,但我对使用非标准类型犹豫不决。下一个 C++ 标准会定义固定宽度的整数吗?

最佳答案

您可以使用一些 #ifdef 指令来解决此问题。

#ifdef _MSC_VER
   typedef __int16 int16_t
#else
   #include <stdint.h>
#endif

关于c++ - C++ 中的定宽整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734802/

相关文章:

c++ - 如何从 C++ 中的整数缓冲区中提取 4 个字节的整数

c++ - 我可以安全地将数字转换为枚举并带有后备值吗?

c - 在 C 中,当在 if 语句的条件中使用它们时,哪些值等于 true 或 false?

c++ - 从一个 vector 中移除另一个 vector 的元素

c++ - 字符串损坏 - 堆栈溢出?

c++ - 我的指针损坏了,我不知道为什么

c - const char * 的 scanf 段错误

c - 性能缓存事件是什么意思?

perl - 我可以将 Strawberry Perl 嵌入到 VC++ 6.0 编译的应用程序中,或者在编译器不匹配的情况下使用 Inline::C 吗?

c++ - "pointer not aliased by any other pointer"含义的持续时间是多少?