cstdio stdio.h Namespace
Dalam C , perpustakaan C standard tersedia dalam ruang nama std. Walau bagaimanapun, salah tanggapan biasa timbul apabila menggunakan pengepala seperti cstdio dan stdio.h.
Termasuk cstdio mengimport nama simbol ke dalam ruang nama std. Walau bagaimanapun, termasuk stdio.h mengimport nama simbol ke dalam ruang nama global. Ini kerana pengepala C, termasuk cstdio, berkelakuan seolah-olah nama yang diletakkan dalam ruang nama std juga diletakkan dalam ruang nama global.
Contoh:
Kod berikut menggunakan fungsi std::printf, yang ditakrifkan dalam ruang nama std:
<code class="cpp">std::printf("hello world"); // Correct</code>
Sebaliknya, kod berikut menggunakan fungsi printf, yang ditakrifkan dalam ruang nama global:
<code class="cpp">printf("hello world"); // Correct</code>
Perhatikan bahawa termasuk cstdio juga boleh menjadikan fungsi printf tersedia dalam ruang nama std, tetapi ini tidak dijamin. Untuk memastikan ketersediaan dalam kedua-dua ruang nama, adalah disyorkan untuk menggunakan pengepala yang sepadan dengan ruang nama yang dikehendaki:
Atas ialah kandungan terperinci Mengapakah cstdio mengimport simbol ke dalam ruang nama std manakala stdio.h mengimportnya ke dalam ruang nama global?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!