カニゲーム攻略日記ブログ

beatmaniaIIDXやハースストーンなどのゲーム攻略日記。主にまったり勢。2016年にIIDX皆伝になった

プログラミング言語C(K&R)  第4章 関数とプログラム構造 その1

目的:

(前回と同じ)

Cプログラミングの基礎、土台作りをしっかり固めることで、
他のプログラミング言語を新しく始める時にも、すぐ理解して使いこなせるようになると考えている

 

補足:

演習問題は時間がかかるので後回し
一通り読んだ後で演習問題を行う予定
演習問題を全てマスターすればプログラミング言語C(K&R)マスターの称号を得られるかも


所感:

この章はわけのわからない説明が多くて
初級者にも中級者にも分かりにくい内容だと思った

 

4.1 関数についての基本事項

・分かりやすいプログラムを作るために関数を使うと良い

main関数だけで行うのも可能だけど、
1つの大きなプログラムよりも
小さなプログラムのほうが使いやすい

例えば、特定の文字を印字するプログラム

 

良い例:

while(まだ行があるか調べる関数){
    if(行に特定の文字があるか調べる関数){
        印字する関数(printf)
    }
}

 

悪い例:

まだ行があるか調べる処理(10行くらい)
・・・
・・・
・・・
・・・
・・・
行に特定の文字があるか調べる処理(10行くらい)
・・・
・・・
・・・
・・・
・・・
印字する関数(printf)

 

他にも、関数だけでなく、ファイルも分けると管理し易い


4.2 非整数を返す関数

関数で浮動小数点(0.1など)を返したい場合は
関数名の前にdoubleなどをつける

 

double atof()

 

第2に重要なこと
呼出元が、atof()が浮動小数点を返すことを知ってないといけない
これを保障するやり方

 

void main(void){
    double atof();
}


この方法は仕事で全く見た事も使ったこともなかった
main関数の外でatof関数を宣言するだけだった
試しに以下のテストプログラムを作ったら、
正常にコンパイルして動いた

 

#include<stdio.h>

 

#define ROOPMAX 5

 

double atof();

 

int main(void){
    double atof();
    double sum;
    int i;

    sum = 0;
    for(i=0; i<ROOPMAX; i++){
        printf("%f\n", sum += atof());
    }

    return 0;
}

double atof(){
    return 1.1;
}

結果

1.100000

2.200000

3.300000

4.400000

5.500000

 

ミスを減らすために使ってもいいのかも

覚えておいて損はなさそう