【发布时间】:2011-06-12 23:48:22
【问题描述】:
在汇编语言中,我使用 .section 指令告诉汇编器要输出到哪个部分,例如
.section init
有没有办法在 C 文件中做同样的事情。我希望某些文件的代码进入不同的部分,以便我可以将其加载到不同的内存地址。我知道我可以为 ld 创建一个脚本并在那里指定部分,但我不想这样做。对于 C 文件,是否有一些编译器开关或 .section 指令之类的东西可以做到这一点?
【问题讨论】:
在汇编语言中,我使用 .section 指令告诉汇编器要输出到哪个部分,例如
.section init
有没有办法在 C 文件中做同样的事情。我希望某些文件的代码进入不同的部分,以便我可以将其加载到不同的内存地址。我知道我可以为 ld 创建一个脚本并在那里指定部分,但我不想这样做。对于 C 文件,是否有一些编译器开关或 .section 指令之类的东西可以做到这一点?
【问题讨论】:
有:
__attribute__((section("section_name")))
所以,例如:
void foo() __attribute__((section(".text_foo")));
....
void foo() {}
将foo 放入.text_foo
更多信息请参见here。
【讨论】: