gpt4 book ai didi

c - C 中全局/局部变量的内存对齐

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

在 C 中,如果我创建如下结构

typedef struct A
{
int a;
char b;
} sampleType __attribute__ ((aligned (128)));

该类型的所有变量都将按 128 位边界对齐。

这个类型的全局变量和局部变量是否一样?或者它是否因编译器而异?GCC/LLVM 如何处理它们?

最佳答案

需要明确的一件事 - 只有使用 sampleType typedef 的变量才会强制执行指定的对齐方式。

使用 struct A 声明的变量不会。

并且这种语法是 GCC 扩展——其他编译器可能支持也可能不支持(MSVC 不会,我不知道 LLVM 是否支持)。

关于c - C 中全局/局部变量的内存对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7185245/

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