gpt4 book ai didi

c - GNU GCC 编译器 - 对齐属性

转载 作者:行者123 更新时间:2023-11-30 14:46:10 25 4
gpt4 key购买 nike

我正确地收到了对齐警告

cast increases required alignment of target type [-Wcast-align]

由于以下代码而来自 GCC 编译器:

uint8_t array[100];

uint32_t foo;
foo = * ( (uint32_t *) &array[10]);

然后我使用 aligned 属性来解决问题:

uint8_t array[100] __attribute__ ((aligned(4)));

uint32_t foo;
foo = * ( (uint32_t *) &array[10]);

尽管有这个技巧,但我还是得到了同样的警告。这是正常现象还是警告应该消失?

最佳答案

__attribute__ ((aligned(4))) 仅对齐数组的开头,而不是数组的每个元素。

如果开头已对齐且偏移量为 10(也不能被 4 整除),则结果地址将不会对齐。

关于c - GNU GCC 编译器 - 对齐属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52512862/

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