コンパイラの警告 (レベル 1) C4090
'operation' : 'modifier' 修飾子が異なっています
操作で使用される変数は、指定された修飾子を使用して定義されていますが、これが原因で、コンパイラによって検出されることなく変更することができません。 式は変更なしでコンパイルされます。
const
または volatile
項目へのポインターが、const
または volatile
を指すものとして宣言されていないポインターに割り当てられると、この警告が発生する可能性があります。
この警告は C プログラムに対して発行されます。 C++ プログラムでは、コンパイラはエラー C2440 を発行します。
次の例では C4090 が生成されます。
// C4090.c
// compile with: /W1
int *volatile *p;
int *const *q;
int **r;
int main() {
p = q; // C4090
p = r;
q = p; // C4090
q = r;
r = p; // C4090
r = q; // C4090
}