C言語学習ノート4——変数属性
2847 ワード
変数のプロパティ
C言語:
変数は独自の属性を持つことができ、変数を定義するときに「属性」キー「属性」キーを付けて変数の特有の意味を示すことができます.
構文:properey type var_name;
変数属性の解析1:autoキーワード(自動変数) autoは、C言語のローカル変数のデフォルト属性 です. auto修飾変数はスタック上の に格納される.コンパイラのデフォルトのローカル変数はautoの です.
変数属性の解析2:registerキーワード(レジスタ変数) registerキーワードは、ローカル変数をレジスタに格納 を示す. registerはレジスタ変数を要求するだけであるが、必ずしも要求が成功するとは限らない . register変数は、CPUレジスタが許容できる値 である必要がある.&演算子でregister変数のアドレス を取得できません.グローバル変数はregister変数 として宣言できません.
変数属性の解析3:staticキーワード(静的変数) staticキーワードは変数の静的属性を示す-static修飾の局所変数はプログラム静的領域 に記憶される. staticキーワードは同時に役割ドメイン限定子の意味を持つ-static修飾のグローバル変数役割ドメインは宣言されたファイルのみ-static修飾の関数役割ドメインは宣言されたファイルのみ
変数属性の解析4:externキーワード(外部変数) extern「外部」定義の変数と関数-extern変数を宣言するためにファイルの他の場所に空間を割り当てる-extern関数ファイルの他の場所に を定義する externは「教える」コンパイラ用にC方式で をコンパイルする.
C言語:
変数は独自の属性を持つことができ、変数を定義するときに「属性」キー「属性」キーを付けて変数の特有の意味を示すことができます.
構文:properey type var_name;
変数属性の解析1:autoキーワード(自動変数)
int main()
{
int i; // auto
auto int j; // auto
return0;
}
変数属性の解析2:registerキーワード(レジスタ変数)
#include
register int i; // error
int main()
{
register char var;
printf("0x%08x", &var); // error
return 0;
}
変数属性の解析3:staticキーワード(静的変数)
#include
int g_v; // ,
static int sg_v; // ,
int main()
{
int var; // ,
static int svar; // ,
retur 0;
}
変数属性の解析4:externキーワード(外部変数)
extern "C"
{
int f(int a, int b)
{
return a + b;
}
}