8

VxWorks で組み込みアプリケーションを開発しています。

静的関数は定義されたファイルでのみ呼び出され、非静的関数はソース プロジェクトの任意のファイルで呼び出されることを知っています。

実行時間とメモリに関する静的関数と非静的関数に違いがあるかどうか疑問に思っています

4

3 に答える 3

15

性能差は全くありません。キーワードが関数に対して行う唯一のことは、関数に内部リンケージstaticが与えられることです。つまり、関数が定義されているファイルでのみアクセスできます。

于 2012-09-28T15:06:40.560 に答える
3

実行時間や実行時のメモリ要件に違いはありません。

一部の (多くの?) リンカは、未使用の静的関数を見つけて削除する方が簡単で、 コード サイズを小さくすることができます。

于 2012-09-28T15:07:27.317 に答える
3

それはあなたのコンパイラに依存します。静的関数は、呼び出されているすべての場所をコンパイラが認識しているため、理論的にはより適切に最適化できます。コンパイラからアセンブリ リストを取得し、それらがより効率的かどうかを自分で確認できるはずです。

于 2012-09-28T15:08:23.527 に答える