C言語 グローバル変数を避ける方法
Posted: 2012年4月25日(水) 22:20
C言語で関数を作る際に例えばtest関数を作るとする.
[test関数の処理内容]
条件がTUREならtest_sub関数を呼び出しリターン文する.
条件がFALSEならtest関数を再帰呼び出しする.
[test_sub関数の処理内容]
条件がTUREならcounter,counter2を加算してリターン文
条件がFALSEならリターン文
この状況でcounter,counter2で計算した値を関数定義の存在するファイルと別のファイルで使いたいとします.
counter,counter2を外部結合の変数(extern )で解決しますが,staticやreturn を使ってうまく出来そうな気もするのですが,スマートなやり方はありませんか?(グローバル変数を使いたくない)
C++でクラスを使うといいとかもありますが,それは最終手段ということでお願いします.
(出来たらC言語文法で)
[test関数の処理内容]
条件がTUREならtest_sub関数を呼び出しリターン文する.
条件がFALSEならtest関数を再帰呼び出しする.
[test_sub関数の処理内容]
条件がTUREならcounter,counter2を加算してリターン文
条件がFALSEならリターン文
void test(){
if(条件文){
test_sub();
return ;
}
test();
}
void test_sub(){
if(条件文){
counter++;
counter2++;
}
return ;
}
counter,counter2を外部結合の変数(extern )で解決しますが,staticやreturn を使ってうまく出来そうな気もするのですが,スマートなやり方はありませんか?(グローバル変数を使いたくない)
C++でクラスを使うといいとかもありますが,それは最終手段ということでお願いします.
(出来たらC言語文法で)