Cの静的関数と通常の関数の違いを知っています。私の質問は、静的関数で宣言された変数とCの通常の関数で宣言された変数の間に違いはありますか?
ありがとう。
静的関数で宣言された変数と C の通常の関数で宣言された変数に違いはありますか?
答え: いいえ違いはありません
いいえ、static
キーワードは関数に適用された場合の可視性にのみ適用されます。
関数のstatic
キーワードは、関数がファイルの外部に表示されないようにすることをコンパイラー/リンカーに指示します。関数に適用すると、CではJavaやC++などの言語static
と同等になります。private
両方の変数はautomatic
であるため、スタックに割り当てられます。
静的関数で使用される用語static
は、その関数のスコープをその特定の.c
ファイルのみにします。これは、その静的関数内で宣言された変数 ( auto
、static
または)には何もしません。register
関数で宣言された変数は、ストレージ クラスの型とは関係ありません。関数で定義されたすべての変数 (静的かどうかに関係なく) は、関数が終了するまでスコープが定義されます。一方、静的であるかどうかにかかわらず、関数は他のファイルへの可視性のみを定義します。