c言語ストレージクラス_Cプログラミング言語のストレージクラス
8293 ワード
c言語ストレージクラス
A variable's storage class tells us the following,
変数のストレージ・クラスは、次のことを示します. Where the variables would be stored? 変数はどこに格納されますか? What will be the initial of the variable, if the initial value is not specifically assigned? (i.e. the default initial value). 初期値が特に指定されていない場合、変数の初期値は何ですか?(既定の初期値). What is the scope of the variables, i.e. in which part of the program of the functions the value of the variable would be available? 変数の範囲は何ですか.すなわち、変数の値は関数プログラムのどの部分で使用できますか. What is the life of the variable, i.e. how long the variable exists? 変数の寿命はどのくらいですか.すなわち、変数はどのくらい存在しますか.
There are four classes in C programming language,
Cプログラミング言語は4種類あり、 Automatic storage classes自動ストレージクラス Register storage classes登録ストレージカテゴリ Static storage classesスタティックストレージクラス External storage classes外部ストレージカテゴリ
The keyword auto is used to declare variable of automatic storage class. (keyword auto is optional).
キーワードautoは、自動格納クラスの変数を宣言するために使用されます.(キーワードautoはオプション).
Syntax
構文
Memory
Default initial value
Unpredictable value
Scope
Local to the block in which the variable is defined.
Life
Control remains within the block in which the variable is defined.
きおく
メモリー
デフォルト初期値
予測不可能な価値
範囲
変数を定義するブロックにローカルです.
生活する
変数を定義するブロック内に保持することを制御します.
Example: To display the default values
例:デフォルト値の表示
注:出力では、デフォルトでは、ゴミ値を格納すると、自動変数として2つのゴミ値が表示されます.
The keyword register is used to declare a variable of the register storage class.
キーワードregisterは、レジスタ格納クラスの変数を宣言するために使用されます.
Syntax
構文
CPU Register
Default initial value
Garbage value
Scope
Local to the block in which the variable is defined.
Life
Control remains within the block in which the variable is defined.
きおく
CPUレジスタ
デフォルト初期値
ごみの価値
範囲
変数を定義するブロックにローカルです.
生活する
変数を定義するブロック内に保持することを制御します.
Example:
例:
しゅつりょくりょう
なお、CPUレジスタに記憶されている変数は、メモリに記憶されている変数よりも常に早くアクセスすることができる.
We cannot use register storage class for all types of variables.
レジスタストレージクラスをすべてのタイプの変数に使用することはできません.
Example: register double a; ,register float c; etc.
例:double aを登録する;登録float c;など
The keyword static is used to declare variables of static storage class.
キーワードstaticは、静的ストレージクラスの変数を宣言するために使用されます.
Syntax
構文
Memory
Default initial value
0
Scope
Local to the block in which the variable is defined.
Life
Value of the variable remains b/w different function calls.
きおく
メモリー
デフォルト初期値
0
範囲
変数を定義するブロックにローカルです.
生活する
変数の値は、白黒の異なる関数呼び出しのままです.
Example:
例:
しゅつりょくりょう
注意:実際に必要としない限り、静的変数の使用を避ける必要があります.変数がアクティブでない場合、値はメモリに保持されるため、メモリの領域が消費されます.そうしないと、他の変数で使用される可能性があります.
The keyword extern is used to declare the variables of external storage class.
キーワードexternは、外部ストレージクラスの変数を宣言するために使用されます.
In this the variable declared without keyword but it should be defined above the function(outside).
この場合、キーワードを持たない変数として宣言されますが、関数(外部)の上で定義する必要があります.
Syntax
構文
Memory
Default initial value
0
Scope
Global
Life
As long as the program execution does not come to an end.
きおく
メモリー
デフォルト初期値
0
範囲
グローバル
生活する
プログラムの実行が終了しない限り.
Example:
例:
しゅつりょくりょう
注:通常、優先度はローカル変数です.
翻訳:https://www.includehelp.com/c/storage-classes.aspx
c言語ストレージクラス
A variable's storage class tells us the following,
変数のストレージ・クラスは、次のことを示します.
Cにおけるストレージクラスタイプ(Types of storage classes in C)
There are four classes in C programming language,
Cプログラミング言語は4種類あり、
1)自動ストレージクラス(1)Automatic storage classes)
The keyword auto is used to declare variable of automatic storage class. (keyword auto is optional).
キーワードautoは、自動格納クラスの変数を宣言するために使用されます.(キーワードautoはオプション).
Syntax
構文
auto int a;
int a;
Storage Memory
Default initial value
Unpredictable value
Scope
Local to the block in which the variable is defined.
Life
Control remains within the block in which the variable is defined.
きおく
メモリー
デフォルト初期値
予測不可能な価値
範囲
変数を定義するブロックにローカルです.
生活する
変数を定義するブロック内に保持することを制御します.
Example: To display the default values
例:デフォルト値の表示
#include <stdio.h>
int main ()
{
auto int i,j;
printf("
%d %d",i,j);
return 0;
}
NOTE: In the output two garbage values will be displayed as automatic variable by default store garbage values. 注:出力では、デフォルトでは、ゴミ値を格納すると、自動変数として2つのゴミ値が表示されます.
2)ストレージクラスの登録(2)Register storage classes)
The keyword register is used to declare a variable of the register storage class.
キーワードregisterは、レジスタ格納クラスの変数を宣言するために使用されます.
Syntax
構文
register int a;
Storage CPU Register
Default initial value
Garbage value
Scope
Local to the block in which the variable is defined.
Life
Control remains within the block in which the variable is defined.
きおく
CPUレジスタ
デフォルト初期値
ごみの価値
範囲
変数を定義するブロックにローカルです.
生活する
変数を定義するブロック内に保持することを制御します.
Example:
例:
#include <stdio.h>
int main()
{
register int i;
for(i=1;i<=100;i++);
printf("%d",i);
return 0;
}
Output しゅつりょくりょう
101
NOTE: A variable stored in CPU register can always be accessed faster than the one which is stored in memory. なお、CPUレジスタに記憶されている変数は、メモリに記憶されている変数よりも常に早くアクセスすることができる.
We cannot use register storage class for all types of variables.
レジスタストレージクラスをすべてのタイプの変数に使用することはできません.
Example: register double a; ,register float c; etc.
例:double aを登録する;登録float c;など
3)静的ストレージクラス(3)Static storage classes)
The keyword static is used to declare variables of static storage class.
キーワードstaticは、静的ストレージクラスの変数を宣言するために使用されます.
Syntax
構文
static int i;
Storage Memory
Default initial value
0
Scope
Local to the block in which the variable is defined.
Life
Value of the variable remains b/w different function calls.
きおく
メモリー
デフォルト初期値
0
範囲
変数を定義するブロックにローカルです.
生活する
変数の値は、白黒の異なる関数呼び出しのままです.
Example:
例:
#include <stdio.h>
void abc()
{
static int a=10;
printf("%d
",a);
a=a+10;
}
int main()
{
abc();
abc();
abc();
}
Output しゅつりょくりょう
10
20
30
NOTE: We should avoid using static variables unless we really need them. Because their value are kept in memory when the variables are not active, which means they take up space in memory that could otherwise be used by other variables. 注意:実際に必要としない限り、静的変数の使用を避ける必要があります.変数がアクティブでない場合、値はメモリに保持されるため、メモリの領域が消費されます.そうしないと、他の変数で使用される可能性があります.
4)外部ストレージクラス(4)External storage classes)
The keyword extern is used to declare the variables of external storage class.
キーワードexternは、外部ストレージクラスの変数を宣言するために使用されます.
In this the variable declared without keyword but it should be defined above the function(outside).
この場合、キーワードを持たない変数として宣言されますが、関数(外部)の上で定義する必要があります.
Syntax
構文
extern int i;
Storage Memory
Default initial value
0
Scope
Global
Life
As long as the program execution does not come to an end.
きおく
メモリー
デフォルト初期値
0
範囲
グローバル
生活する
プログラムの実行が終了しない限り.
Example:
例:
#include <stdio.h>
/*Global variable*/
int a=10;
void abc()
{
printf("%d
",a);
a=a+10;
}
int main()
{
a=a+5;
printf("%d
",a);
a=a+20;
abc();
printf("%d
",a);
abc();
a=a+20;
abc();
printf("%d
",a);
return 0;
}
Output しゅつりょくりょう
15
35
45
45
75
85
NOTE: Mostly in many cases preference is given to a local variable. 注:通常、優先度はローカル変数です.
翻訳:https://www.includehelp.com/c/storage-classes.aspx
c言語ストレージクラス