Apakah tetapan amaran pengkompil yang optimum untuk C/C untuk meningkatkan kualiti kod dan mengesan isu yang berpotensi?

Susan Sarandon
Lepaskan: 2024-11-04 02:06:02
asal
236 orang telah melayarinya

What are the optimal compiler warning settings for C/C   to enhance code quality and detect potential issues?

Tetapan Amaran Pengkompil Optimum untuk C/C

Memilih tahap amaran pengkompil yang sesuai meningkatkan kualiti kod dengan mengenal pasti isu yang berpotensi. Berikut adalah tahap yang disyorkan untuk pelbagai penyusun:

gcc dan g :

  • '-Wall' mengaktifkan amaran yang meluas, termasuk yang untuk peraturan keutamaan logik dan pemeriksaan jenis .
  • '-Werror' menaikkan amaran kepada ralat, walaupun ia mungkin memerlukan melumpuhkan '#warning' makro yang digunakan untuk mengambil nota.

Sun CC:

  • '-xarch=v9' membolehkan tahap amaran yang lebih ketat, menangani kemudahalihan dan kebimbangan kecekapan.

aCC (HPUX):

  • '-A' mengaktifkan semakan tambahan untuk limpahan penimbal, penyahrujukan penuding nol dan kelakuan tidak ditentukan.

Visual Studio:

  • 'Tahap 4' ('/W4') menyediakan amaran komprehensif, termasuk maklumat tentang pembolehubah yang tidak dimulakan dan kod yang tidak digunakan.

Intel:

  • '-Wall' membangkitkan amaran serupa dengan '-Wall gcc ', bersama-sama dengan pemeriksaan tambahan untuk keselamatan ingatan dan mudah alih.

Bendera C Extra-Paranoid:

Untuk kod yang sangat kritikal, set bendera amaran yang komprehensif boleh digunakan:

-g -O -Wall -Weffc++ -pedantic  \
-pedantic-errors -Wextra -Waggregate-return -Wcast-align \
-Wcast-qual  -Wchar-subscripts  -Wcomment -Wconversion \
-Wdisabled-optimization \
-Werror -Wfloat-equal  -Wformat  -Wformat=2 \
-Wformat-nonliteral -Wformat-security  \
-Wformat-y2k \
-Wimplicit  -Wimport  -Winit-self  -Winline \
-Winvalid-pch   \
-Wunsafe-loop-optimizations  -Wlong-long -Wmissing-braces \
-Wmissing-field-initializers -Wmissing-format-attribute   \
-Wmissing-include-dirs -Wmissing-noreturn \
-Wpacked  -Wpadded -Wparentheses  -Wpointer-arith \
-Wredundant-decls -Wreturn-type \
-Wsequence-point  -Wshadow -Wsign-compare  -Wstack-protector \
-Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch  -Wswitch-default \
-Wswitch-enum -Wtrigraphs  -Wuninitialized \
-Wunknown-pragmas  -Wunreachable-code -Wunused \
-Wunused-function  -Wunused-label  -Wunused-parameter \
-Wunused-value  -Wunused-variable  -Wvariadic-macros \
-Wvolatile-register-var  -Wwrite-strings
Salin selepas log masuk

Suaikan tetapan ini kepada keperluan projek dan keserasian perpustakaan pihak ketiga.

Atas ialah kandungan terperinci Apakah tetapan amaran pengkompil yang optimum untuk C/C untuk meningkatkan kualiti kod dan mengesan isu yang berpotensi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan