[gcc] __attribute__とか__attribute__ volatileとか.変数の初期化順番とか

gccなら利用できるのはいいのだけど、他社製コンパイラだとどうなのかな?

あと、最近気になるのがlinuxカーネルとか読んでると、

__attribute__((init_priority(N)))

てのがよくでてくること。変数の初期化順番をこれを利用することで制御できるんだけど、変数の初期化順番で、それほど効率というのは変わるものなのであろうか?? .ctorsとか.ctors.Mとかの理解がやはり浅いな。。。

というかメリットがわからないので、知ってる人は教えてくれるとたすかりまする

あと、inline assemblerはよくわからんコマンドが多くて困る

  __asm__ __volatile__ ("int $0x80"
        	      : "=a" (ret)
        	      : "0" (SYS_read), "b" ((long) fd),
                	"c" ((long) buf), "d" ((long) count): "bx");

これは、http://linux4u.jinr.ru/usoft/WWW/www_debian.org/Documentation/elf/node22.html#SECTION00061000000000000000 inline assemblerのmanual?の例文なんだけど、"=a" (ret)とかなぞです。 もう少し深く読んだほうがよいのだろうなぁ。。。

てか、ELF: From The Programmer's Perspectiveの和訳どっかにないかな。。