C++Primer学習ノート:assertデバッグ&_FUNC__マクロ定義
assert()関数
NDEBUGマクロはStandard Cで定義されたマクロであり、assert()の動作を制御するのに特化している.このマクロが定義されている場合、assertは機能しません.
C Standardではassertをマクロで実現することを規定している.
以上のコードをc/cppの一番上に置きます(もちろん、その後は他の#includeは現れません
マクロ定義の一部
C++は、デバッグ中に直接使用できる次のマクロを定義します.
上記のいくつかのマクロ定義は、再デバッグ中に使用できます.便利です.文字列で表されています.
上のプログラムは文字列「test」を出力します
NDEBUGマクロはStandard Cで定義されたマクロであり、assert()の動作を制御するのに特化している.このマクロが定義されている場合、assertは機能しません.
#ifdef NDEBUG
#define assert(x) ((void)0)
#else
...
C Standardではassertをマクロで実現することを規定している.
#ifdef NDEBUG
#undef NDEBUG
#include
#define NDEBUG
#else
#include
#endif // #ifdef NDEBUG
以上のコードをc/cppの一番上に置きます(もちろん、その後は他の#includeは現れません
マクロ定義の一部
C++は、デバッグ中に直接使用できる次のマクロを定義します.
__FILE__
__LINE__
__DATE__
__TIME__
__FUNC__
上記のいくつかのマクロ定義は、再デバッグ中に使用できます.便利です.文字列で表されています.
void test()
{
cout << __func__ << endl;
}
上のプログラムは文字列「test」を出力します