私にとってこのキーワードは、具体的には、このキーワードを理解するためにいくつかの時間を過ごすために、今日は明らかになっていません。関数や変数の宣言は、前に静的なデータ型を追加した後、次のような効果を持っている場合
、関数定義:
図1に示すように、リンクの特性の関数は、修正内部extrenalから変更します
2、の関数ストレージタイプと影響を受けない範囲
第二に、変数の宣言で使用する場合:
図1に示すように、メモリから変数のタイプは、自動的に静的になります
2、リンク属性とスコープ影響を受けていません
3、ライフサイクルはプロセスの終了まで延長されます
第三に、最も重要なポイント:
それは関数や変数が、ブランドの静的であるかどうか、彼らは、ファイルへのアクセス権を持っている中で宣言されています!
特に、私は栗のために2.3を与えます:
1つの#include <stdio.hに> 2 3 int型の楽しい(無効)。 4 5 INTメイン(ボイド) 6 { 7 ...... 8 楽しいです()。 9 ...... 10 戻り 0 ; 11 } 12 13 INTの楽しみ() 14 { 15 静的 INT 。 16 ...... 17 }
ここで、エンド楽しいことにはint型の楽しみを静的修飾子はライン17フィニッシュに機能開始の範囲から、回収されなかっされる場合。しかし、今、元の関数からプログラム全体のサイクルに変数宣言異なり、プログラムは変数aがあるでしょう実行を開始し、プログラムの最後に変数がリサイクルされます。
しかし、しかし、しかし、その役割はまだ範囲が同じになっています!
静的が、それは関数や変数であるかどうか、覚えていないであろう範囲を変更する、しかしますリンクフィールドを変更!