重複の可能性:
関数内で関数宣言を使用することはできますか?
関数内で関数を宣言できることを知っています。それの用途は何ですか?簡単な例を教えていただけますか?
重複の可能性:
関数内で関数宣言を使用することはできますか?
関数内で関数を宣言できることを知っています。それの用途は何ですか?簡単な例を教えていただけますか?
後で関数を定義し、その関数でのみ使用できるようにする場合を除いて、関数内で関数を宣言することにはほとんど価値がありません。つまり、関数宣言はカプセル化されます。
int main() {
void foo();
foo();
}
void some_other_func() {
foo(); // ERROR
}
void foo() {
}
しかし、それだけです。最も厄介な解析をトリガーすることと比較して、これはせいぜい非常に限られた利点です。
AFAIK、C / C ++の関数内で関数を定義することは非標準であり、一部のコンパイラーのみがそれをサポートしています。ただし、新しいC ++機能、いわゆるラムダ関数を使用できます。
他の関数内で関数(またはラムダ関数)を定義すると、いくつかの点で役立ちます(実装によって異なります)。