gpt4 book ai didi

c++ - MinGW 中的 uint24_t 和 uint48_t

转载 作者:可可西里 更新时间:2023-11-01 18:26:38 25 4
gpt4 key购买 nike

我在 GCC 和 MinGW 中寻找 uint24_t 和 uint48_t 类型。我知道两者都不是标准化的,但我在网上看到了对它们的引用,我想弄清楚:

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

最佳答案

标准 uintXX_t 类型在 stdint.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 作为基础。

关于c++ - MinGW 中的 uint24_t 和 uint48_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16377822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com