1. ホーム
  2. c++

[解決済み] C/C++の行番号

2022-08-12 13:33:57

質問

デバッグのために、以下の行番号を取得することは可能ですか? 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)

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

プリプロセッサマクロの __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__);