uint24_t and uint48_t in MinGW

uint24_t and uint48_t in MinGW

本文关键字:MinGW in and uint24 uint48      更新时间:2023-10-16

我正在寻找GCC和MinGW中的uint24_t和uint48_t类型。我知道它们都不是标准化的,但我在网上看到了它们的参考资料,我想弄清楚:

  1. 我需要为它们包含什么头文件
  2. 它们是跨平台的(至少在Windows, Linux和Mac OSX上),还是仅针对特定目标。
  3. 他们的名字是什么。Uint24_t, __uint24, __uint24_t?

标准的uintXX_t类型在stint .h (C, c++ 98)或cstdint (c++ 11)中提供。

在8位数据、24位地址的AVR架构上,GCC提供了一个内置的24位整数,但它是不可移植的。有关它的更多信息,请参阅http://gcc.gnu.org/wiki/avr-gcc。

GCC或MinGW没有以平台独立的方式提供标准的24位或48位整数类型,但是在几乎任何平台上获得可移植的24位数字的一种简单方法是使用位域:

struct bitfield24 {
  uint32_t value : 24;
};
bitfield24 a;
a.value = 0xffffff;
a.value += 1;
assert(a == 0);

对于48位也可以这样做,使用uint64_t作为基数。