サブルーチン

 以前、ポインタの「値渡し」と「参照渡し」の項目で、以下のようなプログラムを例示しました。

#include <stdio.h>

void plus1(int x)
{
    x = x + 1;
}

int main(int argc, const char * argv[])
{
    
    // insert code here...
    int a;
    
    a = 1;
    plus1(a);
    
    printf("a = %d\n", a);
    
    return 0;
}

 もうひとつが、こちらです。

#include <stdio.h>

void plus1(int *x)
{
    *x = *x + 1;
}

int main(int argc, const char * argv[])
{
    
    // insert code here...
    int a;
    
    a = 1;
    plus1(&a);
    
    printf("a = %d\n", a);
    
    return 0;
}

 plus1という名前の関数を自分で作成しました。その際はポインタの説明に注力したため、このような自分で関数を作ることについて深くは触れませんでした。代わりに、今回の記事で詳細に触れたいと思います。

 内容は、変数の中身の数値に1を足すだけなので、わざわざこのようにする必要はなく、main関数の中で普通に1を足すようにすれば良いと思われるかもしれません。このサンプルプログラムの内容ではメリットはあまりありません。もう少し長いプログラムを作成するときにメリットが働きます。なぜかというと、プログラムが長くなれば長くなるほど、まったく同じ処理内容を複数書く可能性が出てきます。同じ処理が必要であれば、その部分をコピー&ペーストで書いてしまえば、早く作成し終えるかもしれません。しかし、そのようにして複数の箇所に書いた同じ命令に不具合があった場合、書いた場所の分だけ同じ修正をしなければならなくなります。同じ処理の内容をplus1関数のようにmain関数の外に書いておき、main関数の中ではplus1関数を呼び出すような書き方をしていれば、修正箇所は1ヶ所で済みます。

 このようにして、ある程度の処理の固まりを記述した別の関数のことをサブルーチンと呼んでいます。

■スポンサーリンク

このページの先頭へ