2011-10-29 74 views

回答

0

我相信在Linux下最近的GCC沒有這樣的等價物。編譯器在適當的時候發出序言和結尾,並且你應該對此作出決定。把序言或結語做得很小,甚至有時甚至不存在,這可能是相當好的。

你可以在彙編中編寫你的函數。或者你可以在你的函數中加入asm語句。

而你沒有告訴你爲什麼要這樣做。你的目標是什麼?你爲什麼要問?

+0

你錯了,我自己曾經使用過這樣的東西,但現在不記得了。 – MetallicPriest

+3

你用GCC做過嗎? SigTerm引用的頁面與我所說的一致:如果您不想在GCC和Linux(x86或AMD64目標機器上)上使用序言或結尾,請使用asm。 –

+0

嗯,實際上,只有一些(嵌入式)體系結構存在,但你暗示自己在評論中。 – ninjalj

7

在某些體系結構中,gcc支持稱爲「裸」的屬性;最近的gcc docs我給出了這個架構列表:ARM,AVR,MCORE,RX和SPU。

如果您正在使用這些架構之一(如果您嘗試使用它GCC會給你一個警告,它不支持),該屬性可以使用這樣的:

__attribute__ ((naked)) int fun() 
{ 
} 

[最近在gcc開發人員名單上討論了一些關於將「裸」屬性作爲更通用的特性加以討論,並試圖在更多體系結構上支持它的做法,但顯然這並不能幫助您:) [