[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
C の関数や変数の、アセンブラコード中で使われる名前を
指定することができる。それには、キーワード asm
(または
__asm__
)を以下のように宣言の後に書く。
int foo asm ("myfoo") = 2; |
これにより、アセンブラコードの中で、変数 foo
に対して
使われる名前は、通常の ‘_foo’ ではなく、‘myfoo’ と
することを指定する。
C の関数や変数の名前には通常アンダースコアが頭につくシステムでは、 この機能により、アンダースコアが頭につかない、リンカ用の名前を 定義することが可能になる。
関数の定義では、asm
を上のように使うことはできないが、
以下のように、関数の宣言をその定義の前に書き、宣言の後ろに asm
を
書くことで同じ効果が得られる。
extern func () asm ("FUNC"); func (x, y) int x, y; … |
指定したアセンブラでの名前が、何か他のアセンブラシンボルとぶつからない ことを保証するのはユーザの責任である。また、レジスタ名を使ってはならない。 もし使うと、全く不正なアセンブラコードが生成される。 GNU CC には、静的変数をレジスタにストアする能力はない。 おそらく、将来その機能が追加されるだろう。
This document was generated
using texi2html 1.78.