Ini ialah kerumitan arahan yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
kerumitan - Ukur kerumitan sumber C
SINOPSIS
kerumitan [-bendera] [-bendera [nilai]] [--nama-pilihan[[=| ]nilai]] [ ... ]
Operan yang dikendalikan oleh program ini boleh ditentukan sama ada pada baris arahan atau
baca daripada input standard, satu setiap baris. Dalam input itu, mendahului dan mengekori ruang putih
dilucutkan, baris kosong diabaikan. Input standard mungkin bukan terminal.
Kira kerumitan kod sumber bukan sahaja dengan kiraan laluan melalui kod, tetapi
juga menguatkan kiraan baris dengan bersarang tahap logik.
Kira kerumitan kod dengan mengira baris sumber bukan ulasan dan darab dengan
faktor berat logik bersarang. Secara lalai, 1.9.
DESCRIPTION
Berat bagi setiap pernyataan ialah bilangan baris yang digunakan oleh pernyataan itu. Nilai ini ialah
didarab dengan pemberat logik bersarang (1.9 secara lalai) untuk setiap lapisan logik. Untuk
contoh, coretan ini:
jika (foo) {
jika (bar) {
bumble; baz;
}
}
akan mendapat markah 11. Skor ini kemudiannya diskalakan kepada anggaran pmccabe keputusan dengan membahagikan dengan 20
dan pembundaran. Ini mendapat markah "1" pada penghujungnya. pmccabe skor yang lebih tinggi pada prosedur mudah dan
kerumitan skor yang lebih tinggi dengan logik yang lebih mendalam.
Pemarkahan boleh diubah suai dengan melaraskan --penalti bersarang and --skala-faktor.
Nilai lalai telah ditentukur dengan membandingkan hasil purata berjuta-juta baris
kod dengan hasil daripada pmccabe.
Untuk tujuan program ini, prosedur dikenal pasti dengan nama diikuti dengan a
ungkapan dalam kurungan dan kemudian pendakap kerinting pembukaan. Ia berakhir dengan kerinting penutup
kurung di lajur 1.
Program ini akan melaksanakan fungsinya untuk setiap fail yang dinamakan pada baris arahan atau setiap
fail bernama dalam senarai dibaca daripada stdin. Argumen atau nama input mestilah sedia ada
fail. Senarai input mungkin mengandungi komen, iaitu baris kosong atau baris bermula dengan
watak '#'.
PILIHAN
-t sekurang-kurangnya, --ambang=sekurang-kurangnya
Ambang pelaporan. Pilihan ini mengambil nombor integer sebagai hujahnya. The
lalai sekurang-kurangnya untuk pilihan ini ialah:
30
Abaikan sebarang prosedur dengan ukuran kerumitan di bawah ambang ini. Secara lalai,
skor kerumitan di bawah 30 tidak dicetak. Walau bagaimanapun, jika histogram dan
statistik akan dicetak, tetapi bukan skor prosedur individu, maka lalai
ditetapkan kepada sifar. Prosedur di bawah had ini tidak dikira dalam statistik.
--ambang-mengerikan=sekurang-kurangnya
ambang keluar sifar. Pilihan ini mengambil nombor integer sebagai hujahnya. The
lalai sekurang-kurangnya untuk pilihan ini ialah:
100
Jika mana-mana prosedur mendapat markah lebih tinggi daripada ambang ini, maka program akan keluar bukan
sifar. (4/COMPLEX_EXIT_HORRID_FUNCTION, jika tiada masalah lain yang dihadapi.) Oleh
lalai, atur cara ini keluar dari sifar melainkan satu fungsi melebihi skor mengerikan
100.
-n faktor, --penalti bersarang=faktor
pengganda markah untuk kod bersarang.
Konstruk linguistik lebih berat apabila ia bersarang lebih dalam. Oleh
lalai, setiap lapisan menghukum dengan faktor 1.9. Hujah pilihan ialah a
nombor titik terapung. Penalti mungkin 1, tetapi tidak kurang.
--demi-sarang-penalti=faktor
pengganda skor untuk ungkapan bersarang.
Secara lalai, nilai ini adalah separuh antara 1.0 dan penalti bersarang
(khususnya, punca kuasa dua penalti bersarang). Ia merujuk kepada a
sub-ungkapan dalam kurungan. cth
((a > b) && (c > d))
mengandungi dua sub-ungkapan dalam kurungan. Ini akan mengira 3.5 mata. Pada
sisi lain, ini:
(a > b && c > d)
mengandungi dua operator hubungan dan operator logik pada tahap yang sama. Ini
kiraan bersarang akan didarab bersama dan menghasilkan 2.5 * 2.5, Atau 6.25. jangan buat
itu. Ia menjadi lebih teruk jika anda mempunyai and dan or logik pada tahap yang sama.
-s faktor, --skala=faktor
faktor skala kerumitan. Pilihan ini mengambil nombor integer sebagai hujahnya.
Secara lalai, penskalaan ialah 20 yang membahagikan skor mentah sebanyak 20. Ini adalah
dinormalkan kepada kira-kira sepadan dengan pmccabe markah:
0-9 Kod yang mudah diselenggara.
10-19 Dipelihara dengan sedikit masalah.
20-29 Dipelihara dengan sedikit usaha.
30-39 Sukar untuk mengekalkan kod.
40-49 Sukar untuk mengekalkan kod.
50-99 Kod yang tidak boleh diselenggara.
100-199 Gila membuat kod yang sukar.
200 + Saya hanya berharap saya bergurau.
Skor | ln-ct | nc-lns| nama fail(baris): nama-proc
4707 3815 2838 lib/vasnprintf.c(1747): VASNPRINF
-h, --histogram, --tiada-histogram
Paparkan histogram nombor kerumitan. The tiada histogram borang akan melumpuhkan
pilihan. Pilihan ini mungkin tidak dipratetap dengan pembolehubah persekitaran atau dalam
fail permulaan (rc).
Daripada mencetak skor setiap fungsi, ringkasan dicetak pada penghujungnya
menunjukkan bilangan fungsi yang mempunyai julat skor tertentu. Melainkan --skor is
dipanggil secara khusus, markah tidak akan dicetak dengan pilihan ini ditentukan. The
ambang pemarkahan minimum juga akan dikurangkan kepada sifar (0), melainkan --ambang is
dinyatakan.
-c, --skor, --tiada-skor
Paparkan markah untuk setiap prosedur. The tiada markah borang akan melumpuhkan pilihan.
Pilihan ini mungkin tidak dipratetap dengan pembolehubah persekitaran atau dalam permulaan (rc)
fail.
Jika anda tentukan --histogram, markah individu tidak akan dipaparkan, melainkan ini
pilihan ditentukan.
-I rentetan, --abai=rentetan
nama prosedur untuk diabaikan. Pilihan ini mungkin muncul dalam bilangan kali yang tidak terhad.
Sesetengah kod mempunyai takrifan makro yang mengelirukan analisis leksikal. Ini akan menyebabkan
mereka untuk diabaikan. Cara lain untuk menyebabkan fungsi diabaikan ialah:
Gunakan sintaks K&R untuk pengepala prosedur.
Gunakan makro prapemprosesan untuk memasang pengepala prosedur.
Permudahkan kod anda.
Secara umumnya, apa sahaja yang anda lakukan yang mengubah sintaks C biasa akan mengelirukan
analisis leksikal. Jika prosedur tidak dilihat, maka ia tidak akan dikira. Jika
kod dalam prosedur tidak dapat difahami, anda mungkin akan mendapat tidak sesuai
keputusan.
-H, --no-header
jangan cetak tajuk pemarkahan. Pilihan ini mungkin tidak dipratetap dengan persekitaran
pembolehubah atau dalam fail permulaan (rc).
Jika skrip akan memproses output pemarkahan, penghuraian adalah lebih mudah tanpa a
kepala. Output histogram akan sentiasa mempunyai pengepala.
-u unifdef-opt, --unifdef=unifdef-opt
Jalankan sumber melalui unifdef(1BSD). Pilihan ini mungkin kelihatan tidak terhad
Beberapa kali.
Keluarkan bahagian kod yang dikelilingi oleh #jika/#endif arahan. Pilihannya
hujah diluluskan sebagai hujah kepada unifdef(1BSD) program. Sebagai contoh:
kerumitan -u-Dsimbol
akan menyebabkan lambang untuk ditakrifkan dan mengalih keluar bahagian kod yang didahului oleh #ifndef
lambang arahan.
Sila lihat unifdef dokumentasi untuk maklumat lebih lanjut.
--unif-exe=prog
Nyatakan program unifdef.
Program alternatif untuk digunakan untuk menyatukan input.
-i nama fail, --input=nama fail
fail senarai fail.
Daripada sama ada senarai baris arahan fail input atau membacanya daripada standard
input, baca senarai fail daripada fail ini.
--jejak=nama fail
jejak fail output.
Cetak skor perantaraan ke fail surih.
-?, - membantu
Paparkan maklumat penggunaan dan keluar.
-!, --lebih-bantuan
Lulus maklumat penggunaan lanjutan melalui alat kelui.
-> [cfgfile], --save-opts [=cfgfile]
Simpan keadaan pilihan ke cfgfile. Lalai ialah lepas fail konfigurasi
disenaraikan dalam OPTION PRESETS bahagian, di bawah. Perintah akan keluar selepas mengemas kini
fail konfigurasi.
-< cfgfile, --pilihan beban=cfgfile, --pilihan-tiada-beban
Muatkan pilihan daripada cfgfile. Yang pilihan tanpa beban borang akan melumpuhkan pemuatan
fail konfigurasi/rc/ini sebelumnya. --pilihan-tiada-beban dikendalikan awal, tidak teratur.
-v [{v|c|n --versi [{v|c|n}]}]
Versi keluaran program dan keluar. Mod lalai ialah `v', versi mudah.
Mod `c' akan mencetak maklumat hak cipta dan `n' akan mencetak hak cipta penuh
notis.
OPTION PRESETS
Mana-mana pilihan yang tidak ditanda sebagai tidak boleh dipratetap boleh dipratetap dengan memuatkan nilai daripada
konfigurasi ("RC" atau ".INI") fail dan nilai daripada pembolehubah persekitaran bernama:
KOMPLEKSITI_ or KOMPLEKSITI
Pratetap alam sekitar diutamakan (diproses kemudian daripada) konfigurasi
fail. The homerc fail ialah "$@/complex.conf""$ HOME""$PROJECT_ROOT/complex.conf", dan
".". Jika mana-mana daripada ini adalah direktori, maka fail itu .complexityrc dicari dalam
direktori tersebut.
PERSEKITARAN
Lihat OPTION PRESETS untuk pembolehubah persekitaran konfigurasi.
Gunakan kerumitan dalam talian menggunakan perkhidmatan onworks.net