自動記憶域クラス(auto)

 C言語の記憶域クラス指定の中から、今回は自動記憶域クラスについて、ご紹介します。自動記憶域クラスは、極論を言えばローカル変数だと思っていただいて問題ありません。つまり、自動記憶域クラスは、関数の中で記述し、その関数の中でだけ使用できる変数となります。メモリに生成されるタイミングは、その関数が呼び出されたときで、その関数の処理が終了すると自動的に破棄されます。

 自動記憶域クラス指定をしたい場合は、

auto int a;

 このように、変数のデータ型の前に「auto」と付け加えます。ただし、自動記憶域クラスを指定したい場合、autoと指定するのは必須ではありません。というのも、記憶域クラスを指定しなかった場合、デフォルトで自動記憶域クラス(auto)になるからです。明示的に指定したい場合に、「auto」を付け加えます。つまり、

#include <stdio.h>

int plus1(int x) {
    int y;
    y = x + 1;
    return y;
}

int main(int argc, const char * argv[])
{
    
    // insert code here...
    int x = 1;
    x = plus1(x);
    
    printf("x = %d", x);
    
    return 0;
}

 このプログラムは、

#include <stdio.h>

int plus1(int x) {
    auto int y;
    y = x + 1;
    return y;
}

int main(int argc, const char * argv[])
{
    
    // insert code here...
    auto int x = 1;
    x = plus1(x);
    
    printf("x = %d", x);
    
    return 0;
}

 このように書いたのと同じになります。

 Tips:グローバル変数に「auto」は指定できませんので、ご注意ください。

■スポンサーリンク

このページの先頭へ