1. ホーム
  2. c++

[解決済み] _DEBUG と NDEBUG の比較

2022-02-11 11:47:33

質問

コードのデバッグセクションを指定するために、どのプリプロセッサ定義を使用する必要がありますか?

使用方法 #ifdef _DEBUG または #ifndef NDEBUG とか、もっといい方法があるのでしょうか。 #define MY_DEBUG ?

でしょう _DEBUG は Visual Studio 固有のものですか、NDEBUG は標準のものですか?

どのように解決するのですか?

Visual Studioの定義 _DEBUG を指定すると /MTd または /MDd オプションで指定します。 NDEBUG は標準Cのアサーションを無効にします。適切な場合には、それらを使用します。 _DEBUG デバッグ用のコードと一貫性を持たせたい場合は MS CRTデバッグテクニック NDEBUG と整合性を持たせたい場合は assert() .

デバッグ用マクロを自分で定義する場合(コンパイラやCランタイムをハックしない場合)、アンダースコアで名前を始めるのは避けてください。