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

なぜC++で揮発性修飾子を使用するのですか?


揮発性とは2つのことを意味します-

  • 変数の値は、コードを変更しなくても変更される可能性があります。したがって、コンパイラが変数の値を読み取るときはいつでも、それが最後に読み取られたときと同じであるとは見なされない場合や、最後に格納された値と同じであるとは見なされない場合がありますが、再度読み取る必要があります。

    >
  • 揮発性変数に値を格納する行為は、外部から観察できる「副作用」であるため、コンパイラは値を格納する行為を削除することはできません。たとえば、2つの値が連続して格納されている場合、コンパイラは実際に値を2回格納する必要があります。

例として:

i = 2;
i = i;

コンパイラは、数値2を格納し、変数Iを読み取り、読み取った変数をiに格納する必要があります。

volatileキーワードの詳細については、www.geeksforgeeks.org / understanding-volatile-qualifier-in-c /

をご覧ください。
  1. なぜC/C ++で修飾子を使用するのですか?

    修飾子は、必要に応じて機能するように、基本タイプの意味を変更するために使用されます。たとえば、時間を負にすることはできず、符号なしにするのは理にかなっています。 C ++では、char、int、およびdoubleデータ型の前に修飾子を付けることができます。データ型修飾子はここにリストされています- 署名済み 署名なし 長い 短い 符号付き、符号なし、long、およびshortの修飾子は、整数の基本型に適用できます。さらに、signedとunsignedはcharに適用でき、longはdoubleに適用できます。 符号付きおよび符号なしの修飾子は、長すぎるまたは短すぎる修飾子のプレフィッ

  2. C ++変数はconstとvolatileの両方にすることができますか?

    はい、C++変数はconstとvolatileの両方である必要があります。これは、読み取り専用のハードウェアレジスタ、または別のスレッドの出力などの状況で使用されます。 Volatileは、現在のスレッドの外部の何かによって変更される可能性があることを意味し、Constは、(const宣言を使用しているプログラムで)書き込みを行わないことを意味します。