【C言語】 static関数のプロトタイプ宣言を書くな
(プロは無駄なコードを書かない)

static関数の プロトタイプ宣言は必要か?

static関数のプロトタイプ宣言を書くのが面倒くさい

#include <stdio.h>
/*関数プロトタイプ宣言*/
static void a1(
    void//業務でよく記述する関数引数のコメント
);
static void a21(
    void//業務でよく記述する関数引数のコメント
);
static void a22(
    void//業務でよく記述する関数引数のコメント
);
static void b1(
    void//業務でよく記述する関数引数のコメント
);
/*関数の定義*/
int main(void){
    puts(__func__);
    a1();
    b1();    
}
static void a1(void){
    puts(__func__);
    a21();
    a22();
}
static void a21(void){
    puts(__func__);
}
static void a22(void){
    puts(__func__);
}
static void b1(void){
    puts(__func__);
}

業務で、
「ソースコードを上から下へ読めるようにmain()関数を上に書く」とルール化して、
static関数のプロトタイプ宣言を
何百行もコメント付きで記述するプロジェクトは多いですが、
無駄です。

そもそもC言語は関数コールがバンバン発生するので小説のように上から下へ読めません。


呼び出しより先にstatic関数定義するとプロトタイプ宣言は書かなくてOK

#include <stdio.h>
static void a21(void){
    puts(__func__);
}
static void a22(void){
    puts(__func__);
}
static void a1(void){
    puts(__func__);
    a21();
    a22();
}
static void b1(void){
    puts(__func__);
}
int main(void){
    puts(__func__);
    a1();
    b1();    
}

関数の定義がプロトタイプ宣言を兼ねるので
同じ事を2回書かなくて済むので楽です。


static関数のプロトタイプ宣言を書いている暇のある人は

●Visual Studio Code環境の人は以下を学習
(1)F12キーの使い方
(2)”呼び出し階層の表示”

●Linux系環境の人は以下を学習
(1)cflow コマンドの使い方
(2)vim+ctagsコマンドの使い方
 ⇒CTRL+]によるタグジャンプ

main() <int main (void) at f1.c:16>:
    puts()
    a1() <void a1 (void) at f1.c:21>:
        puts()
        a21() <void a21 (void) at f1.c:26>:
            puts()
        a22() <void a22 (void) at f1.c:29>:
            puts()
    b1() <void b1 (void) at f1.c:32>:
        puts()

まとめエディタのタグジャンプ機能を学習しよう。

プロトタイプ宣言と関数定義で
同じ事を2回書く暇があれば、
エディタのタグジャンプ機能を学習しよう。


アンケート

6
貴方はstatic関数のプロトタイプ宣言をどうしてますか?