gpt4 book ai didi

c - 严格的 ANSI C - 8 位结构元素违规?

转载 作者:太空狗 更新时间:2023-10-29 16:01:06 25 4
gpt4 key购买 nike

我定义了一个结构如下:

struct Display7
{
U8 a : 1;
U8 b : 1;
U8 c : 1;
U8 d : 1;
U8 e : 1;
U8 f : 1;
U8 g : 1;
}Display7;

如果我在 Keil IDE 中禁用 Strict ANSI C 检查,则不会出现错误。如果启用 Strict ANSI C,我会收到错误“位字段的非标准类型”。是什么导致了这个问题?如果我将每个结构元素设为 U32,那么 ANSI C 不会报错。

最佳答案

标准对此很明确:

6.7.2.1 Structure and union specifiers: 5/ A bit-field shall have a type that is a qualified or unqualified version of _Bool, signed int, unsigned int, or some other implementation-defined type. It is implementation-defined whether atomic types are permitted.

关于c - 严格的 ANSI C - 8 位结构元素违规?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36469613/

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