Rumah > pembangunan bahagian belakang > C++ > Bolehkah Fungsi C Bersarang Dalam Fungsi Lain?

Bolehkah Fungsi C Bersarang Dalam Fungsi Lain?

Mary-Kate Olsen
Lepaskan: 2024-12-15 22:40:10
asal
525 orang telah melayarinya

Can C   Functions Nest Within Other Functions?

Bolehkah Functions Nest Within Functions dalam C ?

Dalam C , jawapan kepada soalan ini bergantung pada versi bahasa yang digunakan.

C Moden (C 11 dan Nanti)

Ya, dengan 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!");
  }
}
Salin selepas log masuk

C 98 dan C 03

Tidak, tidak langsung. Walau bagaimanapun, anda boleh menggunakan fungsi statik di dalam kelas tempatan sebagai penyelesaian:

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;
}
Salin selepas log masuk

Awas

Dalam C 98 dan C 03, menggunakan kelas tempatan dan fungsi statik untuk simulasi fungsi bersarang bukan amalan biasa dan mungkin mengelirukan pembangun lain.

Atas ialah kandungan terperinci Bolehkah Fungsi C Bersarang Dalam Fungsi Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan