C では、関数は関数内でネストできますか?
C では、この質問に対する答えは、使用されている言語のバージョンによって異なります。
モダン C (C 11 および後で)
はい、ラムダを使用します:
int main() { auto print_message = [](std::string message) { std::cout << message << "\n"; }; // Prints "Hello!" 10 times for (int i = 0; i < 10; i++) { print_message("Hello!"); } }
C 98 および C 03
いいえ、直接ではありません。ただし、回避策としてローカル クラス内で静的関数を使用できます。
int main() { struct X { static void a() {} void b() { a(); // can call static member function inside non-static function. } }; X::a(); // call the function from outside the class. X my_x; my_x.b(); // call the second function from outside the class. return 0; }
注意
C 98 および C 03 では、ローカル クラスと静的関数を使用してネストされた関数をシミュレートすることは一般的な方法ではないため、他の開発者にとって混乱を招く可能性があります。
以上がC 関数は他の関数内にネストできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。