C でプログラミングしています。静的関数とインライン関数について説明したいと思います。関数を静的にすると、それが1つの翻訳単位のみの内部リンケージ下にあることがコンパイラーに示されることを私は知っています。static と inline に関して次の疑問があります。
- 関数を static として作成した場合、他の翻訳単位で使用できますか?つまり、他の .c ファイルで使用できますか? はいの場合..どのように?
- 関数を静的インラインとして作成すると、違いは何ですか? コンパイラによってどのように扱われますか?
- 関数を静的にすると、マクロと同じ効果が得られますか?
- 関数をインラインとして扱うことは、サイズに応じてコンパイラに依存します。では、強制的にインラインのように扱う方法はありますか?
- 最適化のためにインライン関数と静的関数をどのように使用できますか?
上記のことをインラインで説明してください。プラットフォームは Linux、gcc コンパイラ、C 言語です。