用C代码(GCC)定义程序段

用C代码(GCC)定义程序段,gcc,Gcc,在汇编语言中,很容易定义如下节: .section foo 如何在C代码中实现这一点?我想把一段C代码放在一个特殊的部分,而不是.text,这样我就可以把该部分放在链接器脚本中的一个特殊位置 我使用的是GCC。C标准没有提到您所指的“节”,因此您需要使用特定于编译器的扩展 对于GCC,您将希望使用部分属性: extern void foobar(void) __attribute__((section("bar"))); 有一些有限的文档,包括警告: 某些文件格式不支持 任意截面,因此截面

在汇编语言中,很容易定义如下节:

.section foo
如何在C代码中实现这一点?我想把一段C代码放在一个特殊的部分,而不是
.text
,这样我就可以把该部分放在链接器脚本中的一个特殊位置


我使用的是GCC。

C标准没有提到您所指的“节”,因此您需要使用特定于编译器的扩展

对于GCC,您将希望使用
部分
属性:

extern void foobar(void) __attribute__((section("bar")));
有一些有限的文档,包括警告:

某些文件格式不支持 任意截面,因此截面 属性在所有服务器上都不可用 平台。如果你需要绘制地图 将模块的全部内容添加到 特定部分,考虑使用 而不是链接器的设施


我很确定这将是特定于编译器的——也许你可以告诉我们你使用的是哪一个……看看你的编译器的pragma吧。外部无效foobar(void)uuuu属性uuuuu((节(“条”)));对我有效。OP在堆栈溢出上表示“它对我有效”的方式是。