デバッグのために、行番号を取得できますか?C/C++ コンパイラ? (標準的な方法か、特定のコンパイラ専用の方法か)
例えば
if(!Logical)
printf("Not logical value at line number %d \n",LineNumber);
// How to get LineNumber without writing it by my hand?(dynamic compilation)
ベストアンサー1
プリプロセッサ マクロ__LINE__
とを使用する必要があります__FILE__
。これらは定義済みのマクロであり、C/C++ 標準の一部です。プリプロセス中に、これらはそれぞれ現在の行番号を表す整数を保持する定数文字列と現在のファイル名に置き換えられます。
その他のプリプロセッサ変数:
__func__
: 関数名(これはC99ただし、すべての C++ コンパイラがサポートしているわけではありません)__DATE__
: "Mmm dd yyyy" 形式の文字列__TIME__
: "hh:mm:ss" 形式の文字列
コードは次のようになります:
if(!Logical)
printf("Not logical value at line number %d in file %s\n", __LINE__, __FILE__);