ZHCU947E June 2015 – January 2023
创建通用符号
.farcommon symbol,size in bytes[, alignment]
.farcommon symbol,structure tag[, alignment]
.nearcommon symbol,size in bytes[, alignment]
.nearcommon symbol,structure tag[, alignment]
.farcommon 和 .nearcommon 指令用于在通用模块中创建通用符号,而不是在一个段中放置变量。.farcommon 指令用于将符号放置在 far 存储器中,而 .nearcommon 指令用于将符号放置在 near 存储器中。
无法为具有存储器组规格的符号创建通用符号,例如因为 DATA_MEM_BANK pragma 用于对齐变量。
当启用 --common 选项(默认)时,编译器将使用这些指令,这会导致未初始化的文件作用域变量作为通用符号发出。使用通用符号的好处是生成的代码可以删除未使用的变量(如果不删除,则会增加 .bss 段的大小)。(大于 32 字节的未初始化变量通过放置在可以在链接时省略的单独子段中被单独地优化。)除非使用 --common=off 编译器选项,否则默认情况下会对 C/C++ 代码进行这种优化。