GCC提供了一个扩展机制,使得程序员可以指定变量所处的段。如下例
__attribute__((section("FOO"))) int global = 43;
int main()
{
__attribute__((section("BAR"))) static int x;
}对上述代码进行编译得到目标文件后查看段信息,可以看出变量 global 与 x 均是在对应指定的自定义段中的
其中:对 test.c 编译得到目标文件的指令为: gcc -c test.c -o test.o
查看目标文件中段信息的指令为:objdump -s test.o
本文详细解释了GCC如何通过__attribute__((section("段名")))指令来指定变量所在的内存段,通过实例展示了如何在编译过程中灵活控制变量存储位置,对于优化程序性能具有重要意义。
548

被折叠的 条评论
为什么被折叠?



