2017-03-24 7 views
-5

「静的」という言葉についてもっと知りたいと思っている静的なクラスを知っています。 「静的」という言葉を検索すると、多くの定義が得られます。その大部分から静的なものは動かない(固定された)ものです。そうですか? 単語の意味は何ですか?その言葉は歴史的にどこから来たのですか?静的クラスの「静的」とはどういう意味ですか?

ありがとうございます。

+0

これは、このタイプの質問には間違ったフォーラムです。言語的な質問に捧げられたネットワークが十分にある。 – SimonC

+0

[静的]キーワードは[クラスで何をするのですか?](http://stackoverflow.com/questions/413898/what-does-the-static-keyword-do-in-a-class) – Shiva

+0

@ Shivaいいえ、それは同じ質問ではない、私はどこから来て単語が来て、それは何でないか尋ねる – LiziPizi

答えて

-2

スタティックは、要素に特殊な特性を与えるために使用されるキーワードです。静的要素は、静的記憶域のプログラム生存期間中に一度だけ記憶域を割り当てられます。そして、彼らはプログラムの生涯までスコープを持っています。静的キーワードは、関数内の以下の静的変数で使用できます。

Cプログラミング言語(およびC++やObjective-Cなどの閉鎖子孫)では、staticは、生涯(静的変数として)と可視性(リンケージに応じて)の両方を制御する予約語です。静的という言葉は、Javaなど、Cの影響を受ける言語でも使用されます。

Cでは、staticは記憶域クラス(オブジェクト指向プログラミングのクラスと混同しないでください)、extern、auto、およびregister(予約語でもあります)です。すべての変数と関数には、これらのストレージクラスのいずれかがあります。宣言でストレージクラスが指定されていない場合は、コンテキストに依存するデフォルトが使用されます。

ソースファイル内のすべての最上位宣言のextern、関数本体で宣言された変数の場合は autoです。 ストレージクラスライフタイム可視性 外部プログラム実行外部(全プログラム) 静的プログラム実行内部()自動、レジスタ関数実行(なし) これらの言語では、用語「静的変数」は2つの意味を持ちます混乱する:

上記と同じ寿命(言語に依存しない)の変数。または

(Cファミリ固有)ストレージクラスstaticで宣言された変数。 明示的なストレージクラスなしでトップレベルで宣言された変数を含むストレージクラスexternを持つ変数は、最初の意味では静的であり、2番目の意味では静的ではありません。

変数または関数を宣言している間に接頭辞を付けると、静的キーワードは宣言がどこにあるかに応じて他の効果を持つことができます。

静的グローバル変数

(任意の関数定義外)ソースファイルの最上位レベルで静的として宣言された変数は、そのファイル全体にのみ表示され(また、「内部リンケージ」として知られ、「スコープファイル」) 。関数内staticとして宣言

静的ローカル変数

変数は静的意味、自動ローカル変数(autoおよびレジスタ)のように視認性の同じ範囲を有しつつ、すべてのプログラムの実行を通じて、そのメモリセルを保持する、割り当てられています関数のローカルに留まります。したがって、1回の呼び出し中に関数がその静的なローカル変数に入れた値は、関数が再度呼び出されたときにも存在します。静的内部クラス定義として宣言

静的メンバ変数

メンバー変数は、(インスタンス変数とは対照的に、すべてのクラスのインスタンス間で共有される)クラス変数です。

静的関数同様

、静的関数 - (任意のクラス定義外の)ソース・ファイルの最上位レベルで静的として宣言された関数は、 - 「ファイルスコープ」(そのファイル全体のみ表示され、 「内部リンケージ」としても知られている)。

staticメソッド同様

、静的メソッド - クラス定義内の静的として宣言方法は - クラスのすべてのインスタンスではなく、任意の特定のインスタンスに関連することを意味します。

+1

これは何ですか? – LiziPizi

+0

静的な単語の説明 –

関連する問題