2010-08-18 18 views
8

在彙編語言中,可以很容易地定義諸如部分:定義在C代碼(GCC)的程序段

.section foo 

如何在C代碼來完成?我想將一段C代碼放在一個特殊的部分而不是.text,所以我可以將該部分放在鏈接器腳本中的特殊位置。

我正在使用GCC。

+1

我敢肯定,這將是編譯器的具體 - 也許你可以告訴我們你正在使用哪一個... – 2010-08-18 20:31:44

+2

看你編譯器的編譯指示 – pmod 2010-08-18 20:35:31

回答

15

在你的意思上,C標準沒有對「節」做任何說明,所以你需要使用特定於你的編譯器的擴展。

隨着GCC,你將要使用的section屬性:

extern void foobar(void) __attribute__((section("bar"))); 

有一些有限的文件here,包括警告:

某些文件格式不支持 任意部分,所以 屬性在所有 平臺上都不可用。如果您需要將模塊的整個內容映射到 特定部分,請考慮使用鏈接器的 設施。

+0

謝謝男人/女人。 extern void foobar(void)__attribute __((section(「bar」)));爲我工作。 – richard 2010-08-18 22:20:39