Aviso do compilador (nível 3) C4197
'type' : volátil de nível superior na conversão é ignorado
O compilador detectou uma conversão para um tipo r-value qualificado com volátil ou uma conversão de um tipo r-value para algum tipo qualificado com volátil. De acordo com o padrão C (6.5.3), as propriedades associadas a tipos qualificados são significativas apenas para expressões l-value.
A amostra a seguir gera C4197:
// C4197.cpp
// compile with: /W3
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
void sigproc(int);
struct S
{
int i;
} s;
int main()
{
signal(SIGINT, sigproc);
s.i = 1;
S *pS = &s;
for ( ; (volatile int)pS->i ; ) // C4197
break;
// for ( ; *(volatile int *)&pS->i ; ) // OK
// break;
}
void sigproc(int) // ctrl-C
{
signal(SIGINT, sigproc);
s.i = 0;
}
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de