Menavigasi Pengepala C dalam C : std:: vs. Ruang Nama Global
Apabila bekerja dengan pengepala C dalam C , timbul persoalan mengenai pendekatan pilihan untuk memanggil fungsi: menggunakan ruang nama std:: atau ruang nama global. Walaupun C menyokong kemasukan pengepala C dengan mengubah nama pengepala (cth., stdio.h kepada cstdio), pertimbangan semantik pendekatan yang lebih sesuai kekal.
Piawaian C 11 menangani isu ini dalam Bahagian D .5 [depr.c.headers], menyatakan bahawa setiap pengepala C (dengan format nama nama.h) berkelakuan seolah-olah setiap nama diisytiharkan oleh yang sepadan pengepala cname diletakkan dalam ruang nama global. Walau bagaimanapun, ia masih tidak dinyatakan sama ada nama ini diisytiharkan atau ditakrifkan dahulu dalam ruang nama std dan kemudian disuntik ke dalam ruang nama global.
Sebagai contoh,
Berdasarkan maklumat ini, adalah disyorkan untuk memasukkan pengepala cname dan menggunakan pengisytiharan dan takrifan daripada ruang nama std. Ini memastikan keserasian dengan semakan masa hadapan dan mengikut pendekatan pilihan yang digariskan dalam standard:
#include <cstdio> int main() { std::printf("Hello world\n"); }
Walaupun secara teknikal boleh diterima untuk menggunakan
Atas ialah kandungan terperinci Pengepala C dalam C : std:: vs. Ruang Nama Global - Pendekatan Manakah yang Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!