gpt4 book ai didi

gcc - section属性中的“aw”标志是什么意思?

转载 作者:行者123 更新时间:2023-12-03 23:27:04 24 4
gpt4 key购买 nike

在下面的代码行(声明全局变量)中,

unsigned int __attribute__((section(".myVarSection,\"aw\",@nobits#"))) myVar;


“ aw”标志是什么意思?

我的理解是,nobits标志将阻止将变量初始化为零,但是我一直在努力寻找有关“ aw”标志的信息。

另外,nobits标志周围的@和#有什么含义?

最佳答案

section("section-name")属性通过产生以下汇编行将变量放置在特定节中:

.section    section-name,"aw",@progbits


section-name设置为 ".myVarSection,\"aw\",@nobits#"时,会在GCC中利用一种“ code injection”来产生:

.section    .myVarSection,"aw",@nobits#,"aw",@progbits


请注意, #符号开始单行注释。

有关 .section指令的完整说明,请参见 GNU Assembler manual。通用语法是

.section name [, "flags"[, @type[,flag_specific_arguments]]]


所以 "aw"是标志:


答:部分是可分配的
w:该部分可写


@nobits是一种类型:


@nobits:该部分不包含数据(即,该部分仅占用空间)


以上所有内容也适用于 functions,而不仅仅是变量。

关于gcc - section属性中的“aw”标志是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6252812/

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