Rumah > Artikel > pembangunan bahagian belakang > Perbandingan penunjuk fungsi C++ dan fungsi panggil balik
Penunjuk fungsi dan fungsi panggil balik ialah kedua-dua alat untuk melaksanakan mekanisme panggil balik. Penunjuk fungsi dicipta pada masa penyusunan dan tidak boleh diubah suai dan perlu dipanggil secara eksplisit fungsi panggil balik dibuat pada masa jalan dan boleh diikat secara dinamik kepada fungsi yang berbeza dan dipanggil secara automatik oleh fungsi panggil balik. Oleh itu, penunjuk fungsi sesuai untuk panggilan balik statik, manakala fungsi panggil balik sesuai untuk panggilan balik dinamik.
Penunjuk fungsi dan fungsi panggil balik ialah kedua-dua alat berkuasa yang digunakan untuk melaksanakan mekanisme panggil balik dalam C++.
Penunjuk fungsi
Fungsi panggil balik
Pertimbangkan aplikasi yang perlu melaksanakan tugas yang berbeza pada masa yang berbeza. Kita boleh mencapai ini menggunakan kod berikut:
#include <iostream> // 定义一个打印消息的函数 void print_message(const char* message) { std::cout << message << std::endl; } // 定义一个接受函数指针参数的回调函数 void execute_callback(void (*callback)(const char*)) { callback("Hello world!"); } int main() { // 使用函数指针调用回调函数 execute_callback(print_message); // 动态创建并调用回调函数 auto lambda = [](const char* message) { std::cout << "[Lambda] " << message << std::endl; }; execute_callback(lambda); return 0; }
Dalam contoh ini, print_message
是一个函数指针,用于静态回调。lambda 表达式 lambda
是一个动态回调,它在运行时创建并绑定到 execute_callback
. Perbezaan utama
Kaedah panggilan | Eksplisit | |
---|---|---|
Mengikat | Statik | Dinamik |
Atas ialah kandungan terperinci Perbandingan penunjuk fungsi C++ dan fungsi panggil balik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!