Rumah >pembangunan bahagian belakang >C++ >Pengepala C dalam C : Ruang Nama Global atau std:: Ruang Nama?

Pengepala C dalam C : Ruang Nama Global atau std:: Ruang Nama?

DDD
DDDasal
2024-11-29 17:10:12445semak imbas

C Headers in C  : Global Namespace or std:: Namespace?

Menggunakan Pengepala C dalam C : Ruang Nama Global atau std:: Ruang Nama?

Dalam C , penggunaan pengepala C boleh dilakukan dengan minor pengubahsuaian pada nama mereka, sebagai contoh, stdio.h menjadi cstdio. Ini menimbulkan persoalan sama ada lebih baik menggunakan fungsi daripada ruang nama std:: atau ruang nama global apabila memanggil fungsi C dalam kod C.

Penjelasan:

Menurut Standard C 11, semua nama pengepala C dalam bentuk "name.h" diletakkan secara automatik dalam ruang nama global untuk keserasian dengan C perpustakaan standard. Walau bagaimanapun, Standard tidak menyatakan sama ada nama ini pertama kali diisytiharkan atau ditakrifkan dalam ruang nama std:: dan kemudian disuntik ke dalam ruang nama global atau sebaliknya.

Cadangan:

Berdasarkan pengesyoran Standard, adalah dicadangkan untuk memilih memasukkan pengepala "cname" (cth., cstdio) dan menggunakan pengisytiharan dan takrifan daripada ruang nama std:: atas sebab-sebab berikut:

  • Penolakan Pengepala "name.h": Pengepala "name.h" telah ditamatkan dan mungkin akan dialih keluar dalam semakan masa hadapan.
  • Kejelasan Kod yang Dipertingkat: Menggunakan std:: ruang nama membantu membezakan antara pengisytiharan C dan C, meningkatkan kebolehbacaan kod.

Contoh:

Pendekatan pilihan ialah:

#include <cstdio>

int main() {
    std::printf("Hello world\n");
}

Kesimpulan:

Semasa adalah mungkin untuk memanggil fungsi C menggunakan sama ada ruang nama global atau ruang nama std::, adalah lebih dinasihatkan untuk mengikuti cadangan Standard C dan lebih suka menggunakan pengepala cname dengan std:: pengisytiharan dan takrifan ruang nama.

Atas ialah kandungan terperinci Pengepala C dalam C : Ruang Nama Global atau std:: Ruang Nama?. 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