ZHCU875Z August 2001 – October 2023 SM320F28335-EP
创建通用符号
.common symbol,size in bytes[, alignment]
.common symbol,structure tag[, alignment]
.common 指令用于在通用块中创建通用符号,而不是在一个存储器段中放置变量。
该指令仅在 EABI 模式下受支持。
使用通用符号的好处是生成的代码可以删除未使用的变量(如果不删除,则会增加 .bss 段的大小)。(大于 32 字节的未初始化变量通过放置在可以在链接时省略的单独子段中被单独地优化。)
通用符号是放置在 ELF 目标文件的符号表中的符号。它们表示未初始化的变量。通用符号不会引用段。(相反,初始化变量需要引用包含初始化数据的段。)通用符号的值是其所需的对齐方式;它没有地址,也没有存储地址。虽然未初始化的通用块的符号可以出现在可执行目标文件中,但通用符号只能出现在可重定位的目标文件中。通用符号优于弱符号。有关通用符号的更多信息,请参阅 System V ABI 规范中有关“符号表”的部分。
链接包含通用符号的目标文件之时,会在未初始化段 (.common) 中为每个通用符号保留空间。创建一个符号来代替通用符号以引用其保留位置。