Menggunakan Pengepala C dalam C : Ruang Nama atau Skop Global?
Dalam C , seseorang boleh mengakses fungsi dan pengepala C dengan mengubah suai fail pengepala nama (cth., stdio.h kepada cstdio, stdlib.h kepada cstdlib). Walau bagaimanapun, ia menimbulkan persoalan sama ada hendak menggunakan fungsi daripada ruang nama std:: atau ruang nama global untuk pengepala ini dalam kod C.
Ruang nama lwn. Skop Global dalam C
Menurut Piawaian C 11, setiap pengepala C dengan sambungan ".h" berkelakuan seolah-olah namanya diletakkan dalam kedua-dua ruang nama global dan ruang nama std. Ia masih tidak dinyatakan sama ada nama ini pertama kali diisytiharkan dalam ruang nama std:: dan disuntik ke dalam ruang nama global atau sebaliknya.
Pendekatan Pilihan
Untuk memastikan keserasian dengan masa hadapan C menyemak dan mengalih keluar kekaburan yang berpotensi, adalah disyorkan untuk menggunakan pengepala "cname" dan mengisytiharkan serta mentakrifkan fungsi dalam ruang nama std::. Penggunaan pengepala ".h" lama tidak lagi digunakan dan telah dikenal pasti untuk dialih keluar dalam semakan akan datang.
Contoh Kod
Pilih coretan kod berikut:
#include <cstdio> int main() { std::printf("Hello world\n"); }
over:
#include <stdio.h> int main() { printf("Hello world\n"); }
Kesimpulan
Walaupun mungkin untuk menggunakan kedua-dua std:: dan ruang nama global untuk fungsi dan pengepala C dalam C , pendekatan pilihan ialah memasukkan pengepala "cname" dan menggunakan pengisytiharan dan takrifan daripada ruang nama std:: untuk konsistensi dengan semakan C masa hadapan dan untuk mengelakkan isu yang berpotensi.
Atas ialah kandungan terperinci Sekiranya fungsi dan pengepala C digunakan daripada ruang nama `std::` atau ruang nama global dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!