|
|
=== static ===
ファイル有効範囲の( file scope )をもつオブジェクト(変数や配列など)や関数にを記憶域クラス指定子 static を使う伴って宣言することで、そのオブジェクトや関数を内部結合とし他のソースファイル翻訳単位から隠ぺい参照できなくすることができます。
また、ブロック有効範囲のオブジェクトにを記憶域クラス指定子 static を使う伴って宣言することで、そのブロック静的記憶域期間(''static storage duration'')を含む関数もたせることが再び呼び出された時来、前その値が保生存されているよう期間はプログラム実行の全体になります。その値はプログラム開始処理の前に1回だけ初期化しまする。
<syntaxhighlight lang="C">
{{See also|[[#extern]]}}
以下、やや難しい解説。
記憶域クラス指定子staticを伴って宣言されたファイル有効範囲のオブジェクト(変数や配列など)または関数に対する識別子は、内部結合をもつ。
記憶域クラス指定子staticを伴って宣言されたブロック有効範囲のオブジェクトは、無結合である。
記憶域クラス指定子staticを伴って宣言されたブロック有効範囲の関数はない。
<ref name="識別子の結合"/>
記憶域クラス指定子staticを伴って宣言された識別子のオブジェクトは、静的記憶域期間をもつ。
その生存期間はプログラム実行の全体とする。
その値はプログラム開始処理の前に一回だけ初期化する。
<ref name="オブジェクトの記憶域期間">『JISX3010:2003』p.24「6.2.4 オブジェクトの記憶域期間」</ref>
=== auto ===
|