* GCC拡張命令 GCCでしか使えない拡張命令が存在します。移植性は下がりますが、拡張命令によってGCCに情報を伝えることで、GCCはより最適化されたコードを吐き出せるようになります。 * &html(__attribure__((noreturn))) &html(__attribute__((noreturn)))付きで宣言されている関数は、値を返さないことを明示的にコンパイラに伝えることができます。 これを、指定すると何が嬉しいかというと、GCCがプログラムをコンパイルするときに、関数からreturnした後の処理について全く考える必要がなくなるため、より最適化されたコードを吐くことが可能ということと、未初期化変数に関するWarningを回避することができます。 ** 例1 #include #include #ifdef NORETURN extern void func(void
![GCC拡張命令 - 組み込み Linux 開発の手引き - アットウィキ](https://cdn-ak-scissors.b.st-hatena.com/image/square/87187eba81375e12954a570984dcce21a7825ebc/height=288;version=1;width=512/https%3A%2F%2Fads.atwikiimg.com%2Fimg%2Fogimage_setting_s.png)