Prapemproses dengan Penghapusan Kod Selektif untuk C
Soalan C yang disediakan mencari prapemproses yang mengalih keluar blok kod tidak aktif berdasarkan nilai makro yang ditakrifkan atau tidak ditentukan ditentukan melalui argumen baris arahan. Berikut ialah analisis dan senarai alatan yang memenuhi keperluan ini:
Memahami Isu
Gelagat lalai prapemproses adalah untuk menggabungkan semua bahagian kod, walaupun makro tertentu mengawal pelaksanaan mereka tidak ditentukan. Ini boleh membawa kepada bloat kod yang tidak perlu dan kemungkinan ralat. Penyelesaian yang ideal ialah prapemproses yang secara selektif menghapuskan blok tidak aktif ini.
Penyelesaian: Anak Unifdef (sunifdef)
Seperti yang dicadangkan dalam balasan, Sunifdef adalah seorang yang berkuasa alat yang selaras dengan keperluan. Ia membolehkan pengguna untuk menentukan makro yang ditakrifkan atau tidak ditentukan menggunakan pilihan -D dan -U. Ia kemudian menganalisis kod dan menghapuskan mana-mana bahagian yang bergantung pada makro yang ditentukan.
Contoh Sunifdef dalam Tindakan
Pertimbangkan coretan kod berikut:
#ifdef MACRO1 // Code specific to MACRO1 defined #else // Code specific to MACRO1 undefined #endif
Menjalankan sunifdef dengan -D MACRO1 hanya akan mengeluarkan kod khusus untuk MACRO1 yang ditakrifkan, mengalih keluar cawangan yang tidak aktif dengan berkesan.
Alat Lain
Walaupun Sunifdef ialah pilihan yang popular, ia bukan satu-satunya alat yang tersedia. Pilihan lain termasuk:
Atas ialah kandungan terperinci Bolehkah Prapemproses Menghapuskan Kod C Tidak Aktif Berdasarkan Definisi Makro Baris Perintah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!