グローバル変数ローカル変数静的動的静的自動レジスタextern

グローバル変数

グローバル変数が初期化されていない場合、システムはデフォルトで0になり、ローカル変数にはデフォルト値がありません。

1.静的外部変数(このテキストのみ)(静的を追加)
2。外部変数(静的外部変数、他のファイル参照は許可されていません)

ローカル変数

自動変数、両方の動的ローカル変数(関数値を残すと消える)(自動自動)
静的ローカル変数(関数値を保持する)(静的を使用)
レジスタ変数(関数値を残す)
(正式なパラメーターは次のように定義できます自動変数またはレジスタ変数)
ローカル変数の値を解放したくない場合は、ローカル変数の値が静的になる前に静的を追加します。
グローバル変数の値が他のファイルによって参照されたくない場合は、それが配置されているファイルで使用するだけです。前に静的を追加します。

static int a; //静态局部整形变量或静态外部整形变量;
			//函数中变量不随函数结束就消失,而保留原值,空间不释放。
auto char c;//自动变量,在函数内定义;
           //局部变量如果不专门声明为static(静态)存储类别,都自动默认为auto动态存储区中。

register int d;//寄存器变量,在函数内定义;
            //以前版本低,运算器与内存互交流工作,导致变量使用频率过多时就会存储和拿出运算,
			//使计算变慢,所以次函数,将所用变量暂时放入CUP存储器中。
			//对于常使用的变量,减少运算时间,就将本该存放在内存中的值,暂时存放在CPU中直接运算。
			//现在系统自动识别使用频率高的自动放入CPU的寄存器中。
extern a;//将已定义外部变量a的作用域引用至此(可跨文件引用)

おすすめ

転載: blog.csdn.net/weixin_52270223/article/details/110149100