Bendera Amaran Teliti dan Verbose untuk Kompilasi C dengan g
Gcc menyediakan set bendera amaran yang komprehensif untuk membantu pembangun dalam mengesan isu yang berpotensi dalam kod mereka. Untuk mendayakan amaran menyeluruh dan bertele-tele dalam C , pertimbangkan pengesyoran berikut:
Amaran Penting:
-
-pedantic: Patuhi ketat Piawaian bahasa C.
-
-Dinding: Aktifkan semua amaran yang diterima umum.
-
-Wextra: Kembangkan skop amaran melepasi -Wall.
-
-Wcast-align: Kesan hantaran penunjuk tidak sejajar.
-
-Wcast-qual: Beri amaran tentang perubahan dalam kelayakan jenis penunjuk.
-
-Wctor-dtor-privacy: Serlahkan isu dengan pembina kelas dan pengubah akses pemusnah.
-
-Wdisabled-optimization: Kenal pasti kod yang boleh dioptimumkan tetapi tidak .
-
-Wformat=2: Tingkatkan pengendalian penentu format semasa penyusunan.
-
-Winit-self: Halang pembolehubah daripada dimulakan semula kepada diri mereka sendiri.
-
-Wlogical-op: Kesan isu keutamaan pengendali yang berpotensi.
-
-Wmissing-declarations: Beri amaran tentang kehilangan pengisytiharan pembolehubah dan fungsi.
-
-Wmissing-include-dirs: Serlahkan direktori termasuk yang tiada.
-
-Wnoexcept: Galakkan mekanisme pengendalian pengecualian.
-
-Wold-style-cast: Kenal pasti isu keserasian kod yang berpotensi.
-
-Woverloaded-virtual: Amaran tentang lebihan kaedah maya.
-
- Wredundant-decls: Tunjukkan pengisytiharan berlebihan.
-
-Wshadow: Elakkan pembayangan pembolehubah yang tidak disengajakan.
-
-Wsign-conversion : Kesan kemungkinan ralat penukaran tanda.
-
-Wsign-promo: Serlahkan potensi isu promosi tanda.
-
-Wstrict-null-sentinel : Tingkatkan keselamatan kod dengan mengawal nilai sentinel nol.
-
-Wstrict-overflow=5: Hadkan tahap limpahan integer kepada lima amaran.
-
-Wswitch -lalai: Pastikan pengendalian pernyataan suis yang komprehensif.
-
-Wundef: Amaran tentang pembolehubah atau makro yang tidak ditentukan.
-
-Wno-unused : Tidak termasuk amaran pembolehubah yang tidak digunakan untuk meningkatkan fokus pada isu yang lebih kritikal.
Amaran Pilihan tetapi Boleh Diragui:
-
-Wdisabled-optimization: Mungkin menunjukkan kod suboptimum, tetapi tidak semestinya ralat.
-
-Wfloat-equal: Berpotensi menyebabkan positif palsu untuk kesaksamaan selamat perbandingan.
-
-Wold-style-cast: Mungkin mempunyai positif palsu dalam perpustakaan pihak ketiga.
-
-Wsign-conversion: Memerlukan berhati-hati perhatian kepada jenis data untuk mengelakkan ralat.
-
-Wsign-promo: Pertimbangan yang sama seperti -Wsign-conversion.
-
-Wswitch-default: Menguatkuasakan pengendalian eksplisit kes pernyataan suis tetapi boleh membosankan.
Amaran untuk Kecualikan:
Amaran ini ditinggalkan kerana potensi positif palsu atau utiliti terhad:
-
-Wabi: Memerlukan kompilasi binari daripada pelbagai sumber.
-
-Waggregate-return: Mei menunjukkan jenis data tersirat penukaran.
-
-Wconversion: Boleh menjana amaran untuk penukaran tersirat yang tidak berbahaya.
-
-Weffc : Boleh berselerak dengan amaran yang tidak berkaitan.
-
-Winline: Mungkin tidak terpakai dalam semua senario kaedah sebaris.
-
-Winvalid-pch: Tidak digunakan pada projek yang tidak menggunakan pengepala yang diprakompil.
-
-Wmissing-format-attribute: Memerlukan sambungan GNU tidak biasa digunakan.
-
-Wpadded: Memerlukan pengoptimuman manual reka letak kelas.
-
-Wstack-protector: Memerlukan bendera pengkompil khusus untuk perlindungan tindanan.
-
-Wstrict-aliasing=3: Menawarkan amaran tambahan terhad berbanding tahap yang lebih rendah.
-
-Wswitch-enum: Terlalu menyekat dan mungkin tidak sesuai untuk semua kes penggunaan.
-
-Wunsafe- pengoptimuman gelung: Boleh menjana amaran palsu dalam senario tertentu.
Atas ialah kandungan terperinci Apakah g Bendera Amaran Perlu Saya Gunakan untuk Analisis Kod C yang Teliti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!