Pengepala C dalam C : std:: vs. Ruang Nama Global - Pendekatan Manakah yang Lebih Baik?

Susan Sarandon
Lepaskan: 2024-11-23 07:27:10
asal
364 orang telah melayarinya

C Headers in C  :  std:: vs. Global Namespace - Which Approach is Better?

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, pengepala pastinya menyediakan pengisytiharan dan takrifan dalam ruang nama std, manakala pengepala pastinya menyediakannya dalam ruang nama global.

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");
}
Salin selepas log masuk

Walaupun secara teknikal boleh diterima untuk menggunakan pengepala dengan pengisytiharan dan takrifan daripada ruang nama global, amalan ini ditamatkan dan mungkin dialih keluar pada masa hadapan.

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!

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