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? 変数の寿命はどのくらいですか.すなわち、変数はどのくらい存在しますか.

  • Cにおけるストレージクラスタイプ(Types of storage classes in C)


    There are four classes in C programming language,
    Cプログラミング言語は4種類あり、
  • Automatic storage classes自動ストレージクラス
  • Register storage classes登録ストレージカテゴリ
  • Static storage classesスタティックストレージクラス
  • External storage classes外部ストレージカテゴリ
  • 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言語ストレージクラス