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

C ++のvolatileキーワードとは何ですか?


ここでは、C++での揮発性修飾子の意味を説明します。揮発性修飾子は、変数を宣言するときに変数に適用されます。これは、値がいつでも変更される可能性があることをコンパイラーに通知するために使用されます。これらは揮発性のいくつかの特性です。

  • volatileキーワードはメモリ割り当てを削除できません。
  • 変数をレジスタにキャッシュすることはできません。
  • 値は割り当て順に変更できません。

volatileキーワードの使い方を見てみましょう。

volatile int a;
int volatile a;

ここで、これら2つの宣言は正しいです。他のデータ型と同様に、揮発性のポインター、構造体、共用体などを使用できます。揮発性の構造体と共用体はそれ自体が揮発性である可能性があり、それらのメンバー変数も揮発性の型である可能性があります。

揮発性物質はさまざまな場所で使用されます。メモリマップドペリフェラルレジスタ、他の関数や割り込みサービスルーチンによってアクセスされるいくつかのグローバル変数、またはいくつかのマルチスレッドアプリケーションでは、volatileを使用できます。

int main (){
   int value;
   value++;
}
int main (){
   volatile int value;
   value++;
}

コードには2つのブロックがあります。最初のブロックでは、volatileキーワードは存在しません。したがって、最初のケースでは、変数がメモリからCPUレジスタにコピーされてから、操作が実行されます。 2番目のケースでは、揮発性物質が存在します。したがって、この場合、変数はメモリからレジスタにコピーされません。


  1. volatileキーワードはC++で何を意味しますか?

    揮発性とは2つのことを意味します- -変数の値は、コードを変更しなくても変更される可能性があります。したがって、コンパイラが変数の値を読み取るときはいつでも、それが最後に読み取られたときと同じであるとは見なされない場合や、最後に格納された値と同じであるとは見なされない場合がありますが、再度読み取る必要があります。 -揮発性変数に値を格納する行為は、外部から観察できる「副作用」であるため、コンパイラは値を格納する行為を削除することはできません。たとえば、2つの値が連続して格納されている場合、コンパイラは実際に値を2回格納する必要があります。 例として- i = 2; i = i; コン

  2. C ++のconstキーワードとは何ですか?

    const修飾子を使用して、変数を定数として宣言します。つまり、変数が初期化されると、値を変更することはできません。 constを使用すると、非常に大きなメリットがあります。たとえば、PIの値のような定数値がある場合、プログラムのどの部分もその値を変更したくないでしょう。したがって、それを定数として宣言する必要があります。 const修飾型で宣言されたオブジェクトは、コンパイラによって読み取り専用メモリに配置される場合があります。また、constオブジェクトのアドレスがプログラムに取り込まれない場合は、まったく格納されない場合があります。たとえば、 #include<iostream&