Piawaian C pernah menghentikan penggunaan kata kunci statik untuk pengisytiharan objek dalam skop ruang nama, menganggap ruang nama tidak dinamakan sebagai alternatif unggul.
Ruang nama tidak dinamakan memberikan beberapa kelebihan berbanding kata kunci statik:
Sebagai contoh, adalah sah untuk mengisytiharkan fungsi dan pembolehubah statik dalam ruang nama:
static int sample_function() { ... } static int sample_variable;
Walau bagaimanapun, adalah tidak sah untuk mengisytiharkan kelas atau struct statik:
// Error: Static types not allowed in namespace scope static class sample_class { ... }; static struct sample_struct { ... };
Ruang nama yang tidak dinamakan menyelesaikan masalah ini isu dengan menyediakan cara untuk mengisytiharkan jenis dalam skop ruang nama:
// Legal code using unnamed namespace namespace { class sample_class { ... }; struct sample_struct { ... }; }
Walaupun kata kunci statik telah dijadikan pematuhan standard dalam C 11, ruang nama yang tidak dinamakan kekal unggul dari segi penyediaan skop yang lebih komprehensif untuk kedua-dua pembolehubah dan jenis serta untuk mempertingkatkan pengkapsulan kod.
Atas ialah kandungan terperinci Ruang Nama Tanpa Nama lwn. Kata Kunci Statik: Manakah yang Menawarkan Skop dan Enkapsulasi Unggul dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!