gpt4 book ai didi

c - : #1546-D: (ULP 15. 的原因 1) 检测到连续的位域分配。建议改用位掩码

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:32 25 4
gpt4 key购买 nike

我正在使用 CCS8,使用结构并初始化变量,如下面的代码所示。 CCS 在第 15、16 和 17 行给我的评论如下:

#1546-D:(ULP 15.1)检测到连续的位域分配。建议改用位掩码

我真的不明白在这种情况下使用位掩码会有什么好处。我认为这句话是一个更普遍的事情,只在奇怪的边缘情况下起作用(?)这个理论在某种程度上得到了 this question on E2E 的支持。 .

附加代码:

#include <msp430.h>

typedef struct
{
unsigned char var1;
unsigned int var2;
unsigned char var3;
unsigned char var4;
} Test;

void main ( void )
{
Test BOB;
BOB.var1 = 1;
BOB.var2 = 1;
BOB.var3 = 3;
BOB.var4 = 1;
}

我真的很想理解这句话,这样我就可以相应地改变我的编码习惯,如果这样可以防止将来可能出现的问题。

提前感谢您的任何反馈/回答。

最佳答案

编辑:我很确定这是一个错误,您应该将其视为误报。请参阅底部的链接。

我在您粘贴的代码中看不到任何位域?

如果代码看起来像这样就有意义了:


struct s
{
char a : 4;
char b : 4;
};

int main()
{
struct s S;
S.a = 0;
S.b = 0;

return 0;
}

我在 TI 论坛上注意到这些关于同一警告的看似误报的报告:https://e2e.ti.com/support/tools/ccs/f/81/t/317480?ULP-15-1-Question https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/317382?ULP-15-1-Question

我知道它们很旧,但除非您使用的是最新版本的 CCS,否则这可能是误报的情况?

关于c - : #1546-D: (ULP 15. 的原因 1) 检测到连续的位域分配。建议改用位掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56905425/

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