グローバル変数をつかわない
Posted: 2011年6月24日(金) 21:28
こんにちは。
以下のコードには文字列を結合させる関数と結合後の文字列を表示する関数が含まれています。グローバル変数char f[5];を用いていますが、これを用いずに実現する方法はないでしょうか。
あくまで、
文字列を結合させる関数
結合させた文字列を表示する関数
の2の役割はそのまま残す感じにしたいです。
自分なりに考えてみたところ、
このようにして実現してみましたが、いかんせん納得がいきません。
というのは、mozi_setuzoku関数の中にmozi_hyouzi関数を入れてしまったからです。このようにせず、main関数の中に2つの関数があるように、グローバル変数を排除することは不可能でしょうか?
よろしくお願いします。
以下のコードには文字列を結合させる関数と結合後の文字列を表示する関数が含まれています。グローバル変数char f[5];を用いていますが、これを用いずに実現する方法はないでしょうか。
あくまで、
文字列を結合させる関数
結合させた文字列を表示する関数
の2の役割はそのまま残す感じにしたいです。
#include <stdio.h>
char f[5];
void mozi_setuzoku(){
char c[3]="ab";
char b[3]="cd";
sprintf(f,"%s%s",c,b);
}
void mozi_hyouzi(){
printf("fは\"%s\"です",f);
}
void main(){
mozi_setuzoku();
mozi_hyouzi();
}
#include <stdio.h>
void mozi_hyouzi(char *f){
printf("fは\"%s\"です",f);
}
void mozi_setuzoku(){
char c[3]="ab";
char b[3]="cd";
char f[100];
sprintf(f,"%s%s",c,b);
mozi_hyouzi(f);
}
void main(){
mozi_setuzoku();
}
というのは、mozi_setuzoku関数の中にmozi_hyouzi関数を入れてしまったからです。このようにせず、main関数の中に2つの関数があるように、グローバル変数を排除することは不可能でしょうか?
よろしくお願いします。