使用前に関数を定義する代わりに、C/C++ でローカル関数を明示的にプロトタイプ化する利点はありますか? ローカルとは、ソース ファイル内でのみ使用される関数を意味します。例はこれです:
#include "header.h"
static float times2(float x){
return 2*x;
}
static float times6(float x){
return times2(3*x);
}
int main(void){
// Other stuff ...
float y = times6(1);
// Other stuff ...
}
これに対して:
#include "header.h"
// Local function prototypes
static float times2(float);
static float times6(float);
// Main
int main(void){
// Other stuff ...
float y = times6(1);
// Other stuff ...
}
// Local functions definition
static float times2(float x){
return 2*x;
}
static float times6(float x){
return times2(3*x);
}
個人的には、書くコードが少なく、(私にとっては) ファイルが読みやすいので、最初のオプションを使用することを好みますが、2 番目のオプションを好む技術的な理由があるかどうか疑問に思っています。
編集: times2() と times6() にstaticを追加しました。@Gangadhar の回答と以下のコメントを参照してください。