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

C / C ++のリエントラント関数とは何ですか?


ここでは、CまたはC++のリエントラント関数とは何かを確認します。 1つの関数は、実行中にその関数を中断し、ISR(Interrupt Service Routine)にサービスを提供してから、タスクを再開するためのプロビジョニングがある場合、リエントラント関数であると言われます。このタイプの関数は、再帰、ハードウェア割り込み処理など、さまざまな場合に使用されます。

リエントラント関数の場合、いくつかのプロパティが必要です。これらは以下にリストされています-

  • このタイプの関数は、グローバル変数または静的変数を使用しません。制限はありませんが、通常はお勧めしません。これは、割り込みによってグローバル変数の値が変更される可能性があるため、ISRから戻った後、関数が新しい値を取得し、結果が異なる可能性があるためです。

  • 再入可能関数は、それ自体のコードを変更してはなりません。関数のアクションはコード全体で同じである必要があります。

  • もう1つのプロパティは、再入可能関数が他の非再入可能関数を呼び出さないことです。

int x;
int my_function() {
   return x * 10;
}
int my_second_function() {
   return my_function() * 20;
}

ここでは、これら2つの関数は再入可能ではありません。 1つ目は、1つのグローバル変数を使用しているため、再入可能ではありません。 2つ目は、1つの非再入可能関数を呼び出すため、これらも再入可能関数ではありません。

int my_function(int x) {
   return x * 10;
}
int my_second_function(int x) {
   return my_function(x) * 20;
}

現在、これら2つの関数はリエントラント関数です。


  1. C / C ++のputwchar()関数

    この記事では、C ++ STLでのputwchar()関数の動作、構文、および例について説明します。 putwchar()とは何ですか? putwchar()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。 putwchar()関数は、標準出力デバイスにワイド文字を書き込むために使用されます。この関数は、引数からワイド文字を取得し、それをシステムのstdoutまたは標準出力に書き込みます。 この関数は、ヘッダーファイルで定義されているputchar()のワイド文字バージョンです。 構文 putwchar(wchar_t widec); パラメ

  2. C / C ++のSystem()関数

    与えられたタスクは、C / C ++でのsystem()の動作を示すことです。 system()関数は、C /C++標準ライブラリの一部です。コマンドプロセッサまたはオペレーティングシステムの端末で実行できるコマンドを渡すために使用され、完了後に最終的にコマンドを返します。 この関数を呼び出すには、またはを含める必要があります。 構文 構文は次のとおりです- int system(char command) コマンドがエラーなしで実行された場合、この関数はゼロを返します。 例 Input: system(“date”) Output: The current d