Rumah > pembangunan bahagian belakang > C++ > _DEBUG lwn. NDEBUG: Takrifan Prapemproses manakah yang Terbaik untuk Kod Nyahpepijat?

_DEBUG lwn. NDEBUG: Takrifan Prapemproses manakah yang Terbaik untuk Kod Nyahpepijat?

Linda Hamilton
Lepaskan: 2024-12-04 04:35:11
asal
490 orang telah melayarinya

_DEBUG vs. NDEBUG: Which Preprocessor Define is Best for Debugging Code?

_DEBUG vs NDEBUG: Prapemproses Mentakrifkan untuk Bahagian Nyahpepijat Kod

Apabila menulis kod yang mempunyai bahagian yang sepatutnya aktif semasa penyahpepijatan, ia menjadi penting untuk mempunyai cara untuk memasukkan atau mengecualikan bahagian ini secara bersyarat. Dalam C/C , ini dicapai menggunakan arahan prapemproses seperti #ifdef dan #ifndef.

Takrifan prapemproses yang manakah disyorkan untuk bahagian nyahpepijat?

Terdapat dua yang biasa digunakan prapemproses mentakrifkan untuk tujuan ini:

  • _DEBUG: Ini define adalah khusus untuk Microsoft Visual Studio dan ditetapkan apabila pilihan /MTd atau /MDd digunakan.
  • NDEBUG: Define ini adalah sebahagian daripada perpustakaan standard C dan bertujuan untuk melumpuhkan penegasan standard-C.

Bagaimanakah definisi ini digunakan?

#ifdef _DEBUG
    // Debugging code here
#endif
Salin selepas log masuk
#ifndef NDEBUG
    // Debugging code here
#endif
Salin selepas log masuk

Kebaikan dan Kelemahan

  • _DEBUG: Selaras dengan teknik penyahpepijatan MS CRT, tetapi bukan standard.
  • NDEBUG: Selaras dengan penegasan assert() dan standard-C, tetapi mungkin diabaikan oleh sesetengah penyahpepijat.

Pendekatan Alternatif

Jika anda ingin mengelak daripada menggunakan takrifan prapemproses yang disediakan oleh pengkompil atau perpustakaan standard, anda boleh mencipta makro penyahpepijatan sendiri dengan nama yang unik, selagi ia tidak bermula dengan garis bawah.

Kesimpulan

Sama ada hendak menggunakan _DEBUG atau NDEBUG bergantung pada keperluan khusus projek anda dan alat nyahpepijat yang digunakan. Walau bagaimanapun, secara amnya disyorkan untuk menggunakan NDEBUG untuk mudah alih dan konsisten dengan penegasan standard.

Atas ialah kandungan terperinci _DEBUG lwn. NDEBUG: Takrifan Prapemproses manakah yang Terbaik untuk Kod Nyahpepijat?. 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