staticキーワード
:四大使用シナリオがあります
1、変更されたクラスのメンバ変数とメンバメソッド(共通の):
すべてのオブジェクトクラスによって共有、クラスオブジェクトが単一に属していない、クラスメンバーに属して修正します。
そして、クラス名の呼び出しによって示唆されました。静的記憶領域に記憶されている修飾されたメンバ変数とメソッド。
関数内2、静的変数:
プログラム全体のライフサイクルのための機能の範囲内での役割、その寿命。
値複数の呼び出しが保存されていることをこれが保証されます。
この変数は、メモリ内に一度だけ割り当てられます。
3、静的グローバル変数:(モジュールは、静的関数であってもよい)を
使用するモジュール関数内でアクセスすることができ、機能は他のモジュールによってアクセスすることができません。(他のモジュールで使用する名前空間を使用して使用する必要がある)、
グローバル静的変数自体が格納され、静的グローバル変数は静的記憶装置です。
非静的グローバル変数のスコープは、プログラム全体(ソースプログラムが複数のソースファイルで構成さ)である。しかし、非静的グローバル変数は、すべてのソースファイルで有効です。
静的グローバル変数はその範囲に制限されている、変数ソースファイルの定義内でのみ有効で、同じプログラムの他のソースファイルは、それを使用することはできません。
これの利点は、他のソースファイルと原因のエラーへの参照を避けるためです。
ブロックがまだ存在した後、最初の静的ローカル変数で終了を示します。
その後、グローバル変数や関数を表すために使用される第2の意味は、他のファイルがアクセスすることはできません。
これは、我々はまだ、この第2の意味を表現するために、静的なキーワードを使用している、新しいキーワードを導入することを避けるためにです。
=================================================
sizeofは、ファンクションキーではありません
EXTERN:変数および変数または関数を定義するために、前に置かれた機能は、別のファイルで表現されます。
揮発性:変数は変更は、いつでも再メモリから削除する必要があるたびに変更される可能性があることをコンパイラに伝えるために使用されます。
=================================================
構造体のキーワード
全体として、パッケージの一部に関連付けられたデータは、使いやすいです。
構造によって占められるスペースの量はのメンバーとメモリです。
しかし、構造
構造体の学生{
} STU。
値はsizeof(STU)はどのくらい?それはゼロではありませんが、1。
コンパイラは、任意のデータ型は、その大きさを持っていると考えているため。
構造体キーワードとクラスの違い:
一般的には、両方のは、一般的なことができますが、構造体のメンバーは、デフォルトでは、公開されているということである小さな違いがありますが、クラスのメンバーは、プライベートすることができます。
構造体キーワードと組合差:
労働組合は、より多くのデータメンバ格納するのに十分なスペースを維持します「」データ構成スペースのないすべてのメンバー。
すべてのメンバーが組合内のデータ空間を共有します。同時に、あなたは唯一のデータメンバを保存することができます。
すべてのメンバーが同じ開始位置を持っています。
組合員へのアクセスは、コンソーシアムのベースアドレスからのオフセットの開始時に0です。
変数へのアクセスは、その最初のアドレス位置組合からのものかどうかの連邦の訪問が始まりました。
また、我々はまた、現在のシステムがビッグエンディアンかリトルエンディアンストレージに格納されているかどうかを判断するために労働組合を使用することができます。
int型checkSystem()
{
組合チェック{
私はint型。
CHAR CH;
} C。
CI = 1。
(c.ch == 1)を返します。
}
すべてのメンバーの開始アドレスとして利用組合のデータ型の特性を。
trueの場合、chが1である、それはリトルエンディアンことを示しています。
偽は、chが0であれば、それはビッグエンディアンことを示しています。
あなたが私の記事を見ることができる前に、最後のサイズが何であるかについては:
終わりの大きさはどのようなものです:https://www.cnblogs.com/grooovvve/p/10710270.html
=================================================
列挙型のキーワード
列挙型の差列挙との#defineマクロ
#defineマクロは原則のみ事前コンパイル段階の単純な置き換えで、一つだけを定義することができ、およびデバッグすることはできません。
列挙型は、関連する定数の数を定義することができ、その値はコンパイル時に決定される列挙定数をデバッグすることができます。
=================================================
typedefのキーワード
すでにデータ型の名前を再取るために存在する可能性がある簡単に言えば、
状況は、新しいボディ構造に名前を付けることは非常に一般的です。