C 中的函數可以巢狀在函數中嗎?
在 C 中,這個問題的答案取決於所使用語言的版本。
現代C(C 11 和稍後)
是的,使用lambda:
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 038 和
不,不是直接的。但是,您可以在本地類別中使用靜態函數作為解決方法:
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中文網其他相關文章!