编译器警告(等级 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
}