Kepentingan Pemalar Tidak Ditakrifkan dalam #if Keadaan
Dalam dunia pengaturcaraan, arahan #if prapemproses memainkan peranan penting dalam bersyarat kompilasi. Ia membenarkan kemasukan terpilih atau pengecualian kod berdasarkan syarat yang ditentukan. Soalan biasa yang timbul dalam konteks ini ialah: Apakah yang berlaku apabila pemalar yang tidak ditentukan digunakan dalam keadaan #jika?
Piawaian C99 dan C memberikan jawapan yang jelas kepada soalan ini. Menurut §6.10.1 ¶3 piawai C99, "Selepas semua penggantian disebabkan pengembangan makro dan pengendali unari yang ditentukan telah dilakukan, semua pengecam yang tinggal digantikan dengan nombor pp 0." Begitu juga, piawaian C menyatakan dalam §16.1 ¶4 bahawa "Selepas semua penggantian disebabkan pengembangan makro dan operator unari yang ditentukan telah dilakukan, semua pengecam dan kata kunci yang tinggal, kecuali benar dan salah, digantikan dengan nombor pp 0. "
Ini bermakna anda boleh bergantung pada andaian bahawa pemalar tidak ditentukan dianggap sebagai sifar dalam penilaian keadaan #jika. Akibatnya, coretan kod di bawah:
#if MY_CONSTANT // Code that will be executed only if MY_CONSTANT is defined #else // Code that will be executed if MY_CONSTANT is undefined #endif
... akan menyebabkan "Kod yang akan dilaksanakan jika MY_CONSTANT tidak ditentukan" dilaksanakan. Tingkah laku ini dijamin oleh piawaian C dan C serta menyediakan cara yang boleh diramal dan konsisten untuk mengendalikan pemalar yang tidak ditentukan dalam keadaan #jika.
Atas ialah kandungan terperinci Bagaimanakah Pemalar Tidak Ditakrifkan Dilakukan dalam #jika Keadaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!