C言語の静的

C言語では、静的な 2つの役割を持っています、

  1. それは、各関数が再初期化し、その値に呼び出されるないように変数は、関数内で宣言されています。
  2. 第二は、グローバル静的変数や関数を宣言することです。静的変数または関数宣言のために、それはこれだけであるコンパイル単位可視、他のコンパイル単位は表示されません。だから、コンパイル単位、それ何と呼ばれていますか?一般的には、元の文書は、最初の文書はそれに対処する方法です、コンパイルCユニットですか?前処理された場合、プレプロセッサは、ヘッダが現在のソースファイルに展開し、コンパイルするコンパイラによってれる含むであろう。このように、我々はそれが破壊されるプリプロセッサによって前処理段階にあったとして、それは、いわゆるヘッダファイルを見られない、コンパイラが懸念していると言うことができる、それが起動されますあなたは、ヘッダー・ファイルで静的変数を定義するのであれば、その後、すべてのソースファイルに含まれ、そこに、このような変数であるが、彼らはお互いに表示されていないでしょう。あなたが複数のコンパイル単位全体に目に見えるグローバル変数をグローバル変数を設定したいのであれば、あなたはstaticとしてそれを定義することはできませんのみ静的非定義されたソース・ファイルに、その後のexternを使用するヘッダファイルで宣言されました。次いで、他のコンパイル単位のグローバル変数によって使用され、このヘッダーファイルを含みます。ヘッダ・ファイルは、ソースファイルが複数で繰り返される同一の変数定義エラーを生じる、ソースファイルを複数に展開されているので、同時に、ヘッダファイルに非静的変数の方法を定義することによって、達成されません。ソースファイルの特定の機能を使用すると、同じプライベート関数のCPPのように、外部に使用したくないという場合はまた、あなたはstaticとしてそれを定義する必要があります。参照

おすすめ

転載: www.cnblogs.com/willhua/p/11764608.html