gpt4 book ai didi

c - 摆脱IAR编译警告Pa039? “use of address of unaligned structure member”

转载 作者:行者123 更新时间:2023-12-02 10:41:58 29 4
gpt4 key购买 nike

适用于ARM的IAR编译器...

我有一个打包的结构

 #pragma pack(push, 4)
typedef struct {
int a;
double b;
} my_t;
#pragma pack(pop)

我想获取一个字段的地址,然后转换为 char *
my_t d;
char * p = (char *)(&(d.b));

是否可以在不使用编译指示禁用警告的情况下免费获得此警告?

最佳答案

就个人而言,我将使用下面的示例中的编译指示来关闭此部分代码的警告。

char *g(void)
{
#pragma diag_suppress=Pa039
return (char *)(&d.b);
#pragma diag_default=Pa039
}

如果这不是一个选项,则可以在 b中找到 my_t的偏移量,并将其添加到 d的地址中
char *f(void)
{
return (char *)&d + offsetof(my_t, b);
}

关于c - 摆脱IAR编译警告Pa039? “use of address of unaligned structure member”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51969604/

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