Rumah > pembangunan bahagian belakang > C++ > Bagaimana Panggilan Balik Berfungsi dalam C , dan Apakah Pelbagai Kegunaannya?

Bagaimana Panggilan Balik Berfungsi dalam C , dan Apakah Pelbagai Kegunaannya?

Mary-Kate Olsen
Lepaskan: 2024-12-14 06:20:11
asal
347 orang telah melayarinya

How Do Callbacks Work in C  , and What Are Their Various Uses?

Panggil balik dan Pelbagai Kegunaannya dalam C

Dalam C , panggilan balik ialah boleh panggil (dibincangkan kemudian) yang diterima oleh kelas atau fungsi, digunakan untuk menyesuaikan logik semasa berdasarkan panggilan balik yang disediakan.

Sebab Penggunaan Panggilan Balik:

  • Untuk menulis kod generik bebas daripada logik dalam fungsi yang dipanggil, membenarkan penggunaan semula dengan panggilan balik yang berbeza.
  • Untuk memberitahu pemanggil tentang peristiwa tertentu, membolehkan statik dan menyusun -fleksibiliti masa.

Apakah Boleh Panggil dalam C ?

  • Penunjuk fungsi (termasuk penunjuk kepada fungsi ahli)
  • std::objek fungsi
  • Ekspresi Lambda
  • Ikatan ungkapan
  • Objek fungsi (kelas dengan operator panggilan fungsi terlampau beban operator())

Menulis dan Memanggil Panggilan Balik:

Penunjuk Fungsi:

  • Notasi Jenis: return_type (*)(parameter_type_1, parameter_type_2, parameter_type_3)
  • Notasi Panggilan Balik: function_pointer(argument)
  • Notasi Penggunaan Panggilan Balik: function(argument_list, function_pointer)
Penunjuk kepada Ahli Fungsi:

    Notasi Jenis:
  • return_type (class_type::*)(parameter_type_1, parameter_type_2, parameter_type_3)
  • Notasi Panggilan Balik:
  • (class_instance.*member_function_pointer)(argument)
  • Panggil Balik Penggunaan Notasi:
  • function(argument_list, class_instance, member_function_pointer)
std::function Objek:

    Notasi Jenis:
  • std::function
  • Callback Call Notation :
  • function_object()
  • Notasi Penggunaan Panggilan Balik:
  • function(argument_list, function_object)
Contoh Menggunakan std::function:

Mengerti Kod:

template<class R, class T>
void stdf_transform_every_int_templ(int *v, unsigned const n, std::function<R(T)> fp) {
  for (unsigned i = 0; i < n; ++i) {
    v[i] = fp(v[i]);
  }
}
Salin selepas log masuk
Panggil Balik Bertemplat:

template<class F>
void transform_every_int_templ(int *v, unsigned const n, F f) {
  for (unsigned i = 0; i < n; ++i) {
    v[i] = f(v[i]);
  }
}
Salin selepas log masuk
Pelaksanaan Nama Jenis:

Atas ialah kandungan terperinci Bagaimana Panggilan Balik Berfungsi dalam C , dan Apakah Pelbagai Kegunaannya?. 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