Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencetak Penunjuk Fungsi Menggunakan `cout` dalam C ?

Bagaimanakah Saya Boleh Mencetak Penunjuk Fungsi Menggunakan `cout` dalam C ?

Linda Hamilton
Linda Hamiltonasal
2025-01-05 22:31:44194semak imbas

How Can I Print Function Pointers Using `cout` in C  ?

Penunjuk Fungsi Mencetak dengan cout

Dalam C , cout tidak menyokong penunjuk fungsi pencetakan secara langsung. Walau bagaimanapun, menggunakan lebihan pengendali tertentu membolehkan ia dilakukan dengan menukar penuding fungsi kepada penuding lompang (kosong*).

Pengendali<< terbeban untuk berfungsi dengan penunjuk lompang seperti berikut:

ostream &amp; operator <<( ostream &amp;, const void * );

Lebihan ini membenarkan output penunjuk lompang dalam format perenambelasan. Penunjuk fungsi tidak boleh mempunyai beban perpustakaan standard untuk pengendali<< kerana ia wujud dalam bilangan jenis yang tidak terhingga.

Apabila cuba mencetak penunjuk fungsi secara langsung dengan cout, ia secara tersirat ditukar kepada jenis lain. Dalam kebanyakan kes, penukaran ini menghasilkan nilai boolean, tetapi peraturan penukaran yang tepat ditakrifkan pelaksanaan.

Untuk mencetak penunjuk fungsi dengan cout, langkah berikut boleh diambil:

  1. Isytihar dan mulakan penuding fungsi:
int (*pf)();
pf = foo;
  1. Hantar penuding fungsi ke penunjuk kekosongan:
cout << "cout << (void *)pf is " << (void *)pf << endl;
  1. Gunakan operator terbeban<< untuk mencetak penunjuk kosong:
cout << "cout << (void *)pf is " << (void *)pf << endl;

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetak Penunjuk Fungsi Menggunakan `cout` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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