Rumah >pembangunan bahagian belakang >C++ >Mengapakah `printf` berfungsi dalam kedua-dua `std::printf` dan `printf` apabila menggunakan `` dalam C ?

Mengapakah `printf` berfungsi dalam kedua-dua `std::printf` dan `printf` apabila menggunakan `` dalam C ?

Barbara Streisand
Barbara Streisandasal
2024-10-26 05:43:30611semak imbas

Why does `printf` work in both `std::printf` and `printf` when using `` in C  ?

cstdio Stdio.h Namespace

Dalam dokumentasi rujukan C untuk , ia mendakwa bahawa semua elemen perpustakaan berada dalam std ruang nama. Walau bagaimanapun, eksperimen menunjukkan bahawa kedua-dua panggilan fungsi std::printf dan printf berfungsi. Adakah ini menunjukkan bahawa pengepala C mengimport nama simbol ke dalam ruang nama std dan global?

Jawapan

Termasuk mengimport nama simbol ke dalam ruang nama std, dan berpotensi ruang nama global. Sebaliknya, termasuk mengimport nama simbol ke dalam ruang nama global, berpotensi memasukkannya ke dalam ruang nama std juga.

Tingkah laku ini meliputi semua pengepala gaya C. Menurut standard C 11 (Lampiran D), pengepala perpustakaan standard C berkelakuan seperti berikut:

"2 Setiap pengepala C, setiap satunya mempunyai nama nama borang.h, berkelakuan seolah-olah setiap nama diletakkan dalam ruang nama perpustakaan standard oleh pengepala cname yang sepadan diletakkan dalam skop ruang nama global."

Oleh itu, masih tidak pasti sama ada nama ini pada mulanya diisytiharkan atau ditakrifkan dalam ruang nama std dan kemudian disuntik ke dalam ruang nama global melalui menggunakan-pengisytiharan, atau sebaliknya.

Atas ialah kandungan terperinci Mengapakah `printf` berfungsi dalam kedua-dua `std::printf` dan `printf` apabila menggunakan `` dalam C ?. 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