プログラミングで関数あるいはメソッドはうまく使いこなせるようにしたい

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

簡単なプログラミングではタイプにもよるが基本的に上から下に処理が進んでいくというフローになっている。バッチ処理など、順次処理を行っていくというのであればそれでも基本的には十分なのだが、アプリや比較的大規模なシステムなど、単純に処理が進むものではないシステムではそれでは限界がある。この時に関数やメソッドなどがある。

関数やメソッドは、他の場所から必要に応じて呼ばれた時に、それに定義された処理を行った後、その結果を返すというものである。例えば以下のようなものがある。

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int getrand(void);

int main(void){
    printf("random: %d", getrand());
    return EXIT_SUCCESS;
}

int getrand(void) {
    static _Bool initialized = false;
    if (!initialized) {
        srand(time(NULL));
        initialized = true;    
    }
    return rand() % 100;
}

上記のコードはメインルーチンから0〜99の乱数を取り出すgetrand()関数を呼んだ結果を出力するというだけの簡単なコードだが、この中でgetrand()については、他の関数からでも宣言さえしっかり行えば呼び出せる。例えば以下のようにすることもできる。

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int getrand(void);
void printrand(void);

int main(void){
    printrand();
    return EXIT_SUCCESS;
}

int getrand(void) {
    static _Bool initialized = false;
    if (!initialized) {
        srand(time(NULL));
        initialized = true;    
    }
    return rand() % 100;
}

void printrand(void) {
    printf("random: %d", getrand());
}

上記のコードはmain()関数は単純にprintrand()を呼ぶだけにした上で、printrand()getrand()を読んだ結果を出力するという風に変更した。

上記のように関数をうまく使いこなすことによって、重複したコードを削減して、共通した処理にすることで、修正する数を減らすことができるなどメンテナンス性が向上する。

近年ではIDEも性能が良くなっており、関数を定義した場所へ簡単にジャンプできるようになっているものも増えている。したがって、近年ではうまく関数やメソッドを使いこなせるようにしたいところである。

上から下に処理をフローさせる書き方にしか慣れていない方には厳しいかもしれないが、覚えておいて損はないだろう。

タイトルとURLをコピーしました