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
Lepaskan: 2024-11-29 17:10:12
asal
437 orang telah melayarinya

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

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 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan