NaaN日記

やったこと、覚えたことを発信する場

Staticしたい(C)

staticについて
書こうと思ったんですが最後まで書けなかった。
でもとりあえずの途中経過として公開はする。

使ってみた
#include <stdio.h>
void show();
int main(void){
    int i;
    for(i=0; i<3; i++){
        show();
    }
    return 0;
}
void show(){
    static int a;   //指定しない場合0で初期化
    int b = 3;
    a++;
    b++;
    printf("%d回目:", a);
    printf("%d\n", b);
    return;
}

/*
1回目:4
2回目:4
3回目:4
*/

staticを付けると、初期化が最初に呼び出されたときだけ行われて、
その後値が保持される

char型配列をreturn

することがstaticを使う方法でもできると聞いたのでやってみようとしたら、
上手くできなかった。
検索にも疲れたので後日検索して追記。


別のファイルから使用できないように関数や変数を修飾

これについてはヘッダーファイルの扱いがよくわからなかったので、
ヘッダーファイルが使えるようになった時に追記します