gpt4 book ai didi

c++ - 具有 uint8 数组奇怪行为的 C 结构

转载 作者:行者123 更新时间:2023-11-28 06:17:34 29 4
gpt4 key购买 nike

我在使用以下 C 结构时遇到问题:

typedef struct AnchorPixel{
int32 X;
int32 Y;
uint8 CH[5];
} AnchorPixel;

实际上,我对其中的 CH 数组有疑问。我就是无法操作 CH 数组。例如下面的程序

AnchorPixel a;
a.CH[2] = 5;
cout << a.CH[2];

给出输出:


如果我将 CH 类型从 uint8 更改为 int32,问题就会消失。这有效:

typedef struct AnchorPixel{
int32 X;
int32 Y;
int32 CH[5];
} AnchorPixel;

有什么想法吗?

最佳答案

uint8 似乎被类型定义为 unsigned char,我们 can see on coliru对于 uint8_t 就是这种情况。 cstdint header 包含 stdint.h 并且 uint8_t 确实是 unsigned char 的 typedef:

typedef unsigned char       uint8_t;

您看到的输出与 cout 一致,将 a.CH[2] 视为 char 类型,

关于c++ - 具有 uint8 数组奇怪行为的 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29950117/

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