C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++の__FILE__、__ LINE__、および__FUNCTION__とは


ここでは、C ++の__FILE、__ LINE__、および__FUNCTION__が何であるかを確認します。

__ FILE __

このマクロは、現在のファイルのパスを取得するために使用されます。これは、ログファイルを生成する場合に役立ちます。次のコードでその機能を説明します。

#include<iostream>
using namespace std;
int errorLog (const char* file, const std::string& msg){
   cerr << "[" << file << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __FILE__, msg )
main() {
   LOG("This is a dummy error");
}

出力

[D:\Misc C and C++ Questions\test_prog.cpp] This is a dummy error

__ LINE __

このマクロは、ソースファイルで現在の行番号を見つけることができます。この行番号は整数値です。ログステートメントが生成されている場合、__LINE__はいくつかの有用な役割を果たします。アイデアを得るには、次の例を参照してください。>

#include<iostream>
using namespace std;
int errorLog (int line, const std::string& msg){
   cerr << "[" << line << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __LINE__, msg )
main() {
   LOG("This is a dummy error");
}

出力

[12] This is a dummy error

__ FUNCTION__

このマクロは、現在の関数を返すことができます。ログステートメントが生成されている場合、__FUNCTION__はいくつかの有用な役割を果たします。アイデアを得るには、次の例を参照してください。

long double rintl(long double argument)

#include<iostream>
using namespace std;
int errorLog (const char* func, const std::string& msg){
   cerr << "[" << func << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __FUNCTION__, msg )
void TestFunction(){
   LOG("Send from Function");
}
main() {
   TestFunction();
   LOG("This is a dummy error");
}

出力

[TestFunction] Send from Function
[main] This is a dummy error

  1. C ++のcin、cout、cerrストリームとは何ですか?

    cin 、cout、cerr、 および詰まり 標準入力と標準出力を処理するストリームです。これらは、iostreamヘッダーファイルで定義されたストリームオブジェクトです。 std :: cin (char型の)狭い文字に向けられた標準の入力ストリームを表すクラスistreamのオブジェクトです。 Cストリームstdinに対応します。標準の入力ストリームは、環境によって決定される文字のソースです。通常、キーボードやファイルなどの外部ソースからの入力と見なされます。 std :: cout (char型の)狭い文字に向けられた標準出力ストリームを表すクラスostreamのオブジ

  2. C ++の符号付きおよび符号なしキーワードとは何ですか?

    C ++のすべての数値タイプには、符号を付けることも付けないこともできます。たとえば、正の整数のみを表すintを宣言できます。特に指定がない限り、すべての整数データ型は符号付きデータ型です。つまり、正または負の値をとることができます。 unsignedキーワードは、符号なしの変数を宣言するために使用できます。 例 #include<iostream> using namespace std; int main() {    unsigned int i = -1;    int x = i;    cout <&l