・auto (省略可): プログラム実行中にメモリ上に確保されたり消去されたりする一時的な変数(= ローカル変数)。
・extern: 他のCソースで使っているグローバル変数を自Cソースでも使用する場合に用いる。
<test1.c>
#include <stdio.h>
int cnt; //グローバル変数 宣言
int main(void)
{
ShowCnt(cnt);
return 0;
}
<test2.c>
#include <stdio.h>
extern int cnt; //test1.cで宣言していたグローバル変数をこちらでも使用する。
void ShowCnt(int v)
{
printf("カウント値: %d", cnt);
}
・static: "ローカル変数 + 値保持" みたいな感じ。 関数内で使用し、プログラム終了まで値を保持する。
--
・グローバル変数: main関数の外で宣言された変数。プログラム終了まで値を保持。
一般に、グローバル変数にstaticは付けない(意味が変わる?)。
----
参考書: 新訂 新C言語入門