Compartir a través de


Advertencias del compilador de Microsoft C/C++ C4000 a C4199

En los artículos de esta sección se describen los mensajes de advertencia del compilador de Microsoft C/C++ C4000 a C4199.

Importante

Las herramientas de compilación y los compiladores de Visual Studio pueden notificar muchas clases de errores y advertencias. Después de encontrar un error o una advertencia, las herramientas de compilación pueden realizar suposiciones sobre la intención del código e intentar continuar, por lo que pueden notificar más problemas al mismo tiempo. Si las herramientas hacen una suposición incorrecta, es posible que los errores o advertencias posteriores no se apliquen al proyecto. Cuando corrija problemas en el proyecto, empiece siempre por el primer error o advertencia notificados y recompile a menudo. Una corrección puede hacer que desaparezcan muchos errores posteriores.

Para obtener ayuda con un mensaje de diagnóstico concreto en Visual Studio, seleccione la ventana Salida y pulse la tecla F1. Visual Studio abre la página de documentación para ese error, si existe. También puede usar la herramienta de búsqueda en la parte superior de la página para buscar artículos sobre advertencias o errores específicos. O bien examine la lista de errores y advertencias por herramienta y escriba en la tabla de contenido de esa página.

Nota:

No se documentan todos los errores o advertencias de Visual Studio. En muchos casos, el mensaje de diagnóstico proporciona toda la información disponible. Si ha llegado a esta página cuando ha usado F1 y cree que el mensaje de error o advertencia necesita una explicación adicional, háganoslo saber. Puede usar los botones de comentarios de esta página para notificar un problema de documentación en GitHub. Si cree que el error o la advertencia son incorrectos o ha encontrado otro problema con el conjunto de herramientas, notifique un problema de producto en el sitio de Developer Community. También puede enviar comentarios y notificar errores en el IDE. En Visual Studio, vaya a la barra de menús y seleccione Ayuda > Enviar comentarios > Notificar un problema, o bien envíe una sugerencia desde Ayuda > Enviar comentarios > Enviar una sugerencia.

Encontrará ayuda adicional sobre errores y advertencias en los foros de Preguntas y respuestas de Microsoft Learn. O bien busque el número de error o advertencia en el sitio de Developer Community de Visual Studio C++. También puede buscar soluciones en Stack Overflow.

Para obtener vínculos a ayuda adicional y recursos de la comunidad, consulte Ayuda y comunidad de Visual C++.

Mensajes de advertencia

Advertencia Mensaje
Advertencia del compilador C4000 ADVERTENCIA DESCONOCIDA
Elija el comando Soporte técnico en Visual C++
Menú Ayuda o abra el archivo de ayuda de Soporte técnico para obtener más información
Advertencia del compilador (nivel 4, ya no se emite) C4001 se ha utilizado la extensión de tipo no estándar 'comentario de una sola línea'
Advertencia del compilador (nivel 1, error) C4002 demasiados argumentos para la invocación de macro similar a función 'identificador'
Advertencia del compilador (nivel 1, error) C4003 no hay suficientes argumentos para la invocación de macro similar a función "identifier"
Advertencia del compilador (nivel 1) C4005 "identifier": redefinición de macros
Advertencia del compilador (nivel 1) C4006 #undef esperaba un identificador
Advertencia del compilador (nivel 3) C4007 "function": debe ser "attribute"
Advertencia del compilador (nivel 3) C4008 "function": "attribute" atributo omitido
Advertencia del compilador (nivel 1) C4010 el comentario de una sola línea contiene un carácter de continuación de línea
Advertencia del compilador (nivel 3) C4013 "function" sin definir; se supone que extern devuelve int
Advertencia del compilador (nivel 1) C4015 "identifier": el tipo de campo de bits debe ser integral
Advertencia del compilador (nivel 3) C4018 'expression': no coinciden signed/unsigned
Advertencia del compilador (nivel 4) C4019 instrucción vacía en ámbito global
Advertencia del compilador (nivel 1) C4020 'function': hay demasiados parámetros reales
Advertencia del compilador (nivel 1) C4022 "function": error de coincidencia de puntero del parámetro real "parameter_number"
Advertencia del compilador (nivel 1) C4023 "function": el puntero con base se pasó a la función sin prototipo: parámetro "parameter_number"
Advertencia del compilador (nivel 1) C4024 "function": tipos diferentes para el parámetro formal y real "parameter_number"
Advertencia del compilador (nivel 1) C4025 "function": el puntero con base se pasó a la función con los argumentos de variable: parámetro "parameter_number"
Advertencia del compilador (nivel 1) C4026 función declarada con lista de parámetros formales
Advertencia del compilador (nivel 1) C4027 función declarada sin lista de parámetros formales
Advertencia del compilador (nivel 1) C4028 parámetro formal parameter_number diferente de la declaración
Advertencia del compilador (nivel 1) C4029 la lista de parámetros formales declarada es distinta de la definición
Advertencia del compilador (nivel 1) C4030 la primera lista de parámetros formales es más larga que la segunda
Advertencia del compilador (nivel 1) C4031 la segunda lista de parámetros formales es más larga que la primera
Advertencia del compilador (nivel 4) C4032 el parámetro formal parameter_number tiene un tipo diferente tras promoverlo
Advertencia del compilador (nivel 1) C4033 "function": debe devolver un valor
Advertencia del compilador (nivel 1) C4034 sizeof devuelve 0
Advertencia del compilador (nivel 3) C4035 "function": sin valor devuelto
Advertencia del compilador (nivel 1) C4036 'type' sin nombre como parámetro real
Advertencia del compilador (nivel 1) C4038 "modifier": modificador de clase no válido
Advertencia del compilador (nivel 1) C4041 límite del compilador: se va a finalizar el resultado del explorador
Advertencia del compilador (nivel 1) C4042 "identifier": tiene una clase de almacenamiento incorrecta
Advertencia del compilador (nivel 1) C4045 "array": desbordamiento de límites de matriz
Advertencia del compilador (nivel 1) C4047 'operador': 'identificador1' se diferencia en los niveles de direccionamiento indirecto de 'identificador2'
Advertencia del compilador (nivel 1) C4048 diferentes subscripts de matriz: "identifier1" y "identifier2"
Advertencia del compilador (nivel 1) C4049 límite del compilador: se va a finalizar la emisión de números de línea
Advertencia del compilador (nivel 1) C4051 conversión de tipo; posible pérdida de datos
Advertencia del compilador (niveles 1 y 4) C4052 las declaraciones de función son distintas; una de ellas contiene argumentos de variable
Advertencia del compilador (nivel 4) C4053 un operando void para "?:"
Advertencia del compilador (nivel 1) C4055 'conversion': del puntero de datos 'type1' al puntero de función 'type2'
Advertencia del compilador (nivel 2) C4056 desbordamiento en la aritmética de constante de punto flotante
Advertencia del compilador (nivel 4) C4057 "operator": "identifier1" difiere en direccionamiento indirecto a tipos base ligeramente diferentes de "identifier2"
Advertencia del compilador (nivel 3, desactivado) C4060 la instrucción switch no contiene etiquetas 'case' ni 'default'
Advertencia del compilador (nivel 4, desactivado) C4061 el enumerador "identifier" en una instrucción switch de "enumeration" enum no está controlado explícitamente por la etiqueta case
Advertencia del compilador (nivel 4, desactivado) C4062 enumerador 'identificador' en el modificador de enum 'enumeración' no se controla
Advertencia del compilador (nivel 4) C4063 case "identifier" no es un valor válido para el modificador de enum "enumeration"
Advertencia del compilador (nivel 4) C4064 modificador de enum "enumeration" incompleto
Advertencia del compilador (nivel 3, desactivado) C4065 la instrucción switch contiene "default" but no etiquetas "case"
Advertencia del compilador (nivel 3) C4066 se han omitido los caracteres en la constante de caracteres anchos a excepción del primero
Advertencia del compilador (nivel 1) C4067 símbolos (token) inesperados después de la directiva del preprocesador; se esperaba una nueva línea
Advertencia del compilador (nivel 1) C4068 "identifier" pragma desconocido
Advertencia del compilador C4069 long double tiene la misma precisión que double
Advertencia del compilador (nivel 3) C4073 inicializadores situados en el área de inicialización de la biblioteca
Advertencia del compilador (nivel 1) C4074 inicializadores situados en el área de inicialización reservada para el compilador
Advertencia del compilador (nivel 1) C4075 inicializadores situados en un área de inicialización no reconocida
Advertencia del compilador (nivel 1) C4076 "type_modifier": no se puede utilizar con el tipo "typename"
Advertencia del compilador (nivel 1) C4077 opción check_stack desconocida
Advertencia del compilador (nivel 1) C4079 token inesperado "token"
Advertencia del compilador (nivel 1) C4080 se esperaba un identificador para el nombre de segmento; se encontró "symbol"
Advertencia del compilador (nivel 1) C4081 se esperaba "token1"; se encontró "token2"
Advertencia del compilador (nivel 1) C4083 se esperaba "token"; se encontró el identificador "identifier"
Advertencia del compilador (nivel 1) C4085 se esperaba que el parámetro de tipo pragma fuera "on" o "off"
Advertencia del compilador (nivel 1) C4086 se esperaba que el parámetro de tipo pragma fuera '1', '2', '4', '8' o '16'
Advertencia del compilador (nivel 1) C4087 "function": se ha declarado con la lista de parámetros "void"
Advertencia del compilador (nivel 1) C4088 "function": error de coincidencia de puntero en el parámetro real "parameter_number", parámetro formal "parameter_number"
Advertencia del compilador (nivel 1) C4089 "function": diferentes tipos del parámetro real "parameter_number", el parámetro formal "parameter_number"
Advertencia del compilador (nivel 1) C4090 "operation": distintos calificadores "modifier"
Advertencia del compilador (niveles 1 y 2) C4091 "keyword": se omitió a la izquierda de "type" cuando no hay ninguna variable declarada
Advertencia del compilador (nivel 4) C4092 sizeof devuelve "unsigned long"
Advertencia del compilador (nivel 2) C4094 el "token" sin etiquetar no declaró símbolos
Advertencia del compilador (nivel 1) C4096 "identifier": la interfaz no es del tipo COM; no se emitirá para IDL
Advertencia del compilador (nivel 1) C4097 se esperaba que el parámetro de tipo pragma fuera "restore" o "off"
Advertencia del compilador (nivel 1) C4098 "function": función "void" que devuelve un valor
Advertencia del compilador (nivel 2) C4099 "identifier": el nombre de tipo visto por primera vez con "object_type1" ya se ve con "object_type2"
Advertencia del compilador (nivel 4) C4100 "identifier": parámetro formal sin referencia
Advertencia del compilador (niveles 3 y 4) C4101 "identifier": variable local sin referencia
Advertencia del compilador (nivel 3) C4102 "label": etiqueta sin referencia
Advertencia del compilador (nivel 1) C4103 se cambió la alineación después de incluir el encabezado; puede ser que falte #pragma pack(pop)
Advertencia del compilador (nivel 1) C4109 identificador inesperado "identifier"
Advertencia del compilador (niveles 1 y 4) C4112 #line requiere un entero entre 1 y "line_count"
Advertencia del compilador (nivel 1) C4113 "identifier1" se diferencia de "identifier2" en las listas de parámetros
Advertencia del compilador (nivel 1) C4114 el mismo calificador de tipo se ha utilizado más de una vez
Advertencia del compilador (niveles 1 y 4) C4115 "type": definición de tipo con nombre entre paréntesis
Advertencia del compilador (nivel 1) C4116 definición de tipo sin nombre entre paréntesis
Advertencia del compilador (nivel 1) C4117 el nombre de macro "name" está reservado; se omite "command"
Advertencia del compilador (nivel 1) C4119 se especificaron distintas bases "base1" y "base2"
Advertencia del compilador (nivel 1) C4120 falta de correspondencia entre punteros con y sin base
Advertencia del compilador (nivel 4) C4121 "symbol": la alineación de un miembro se realizó en función del empaquetado
Advertencia del compilador (nivel 1) C4122 "function": alloc_text solo se aplica a funciones con vinculación C
Advertencia del compilador (nivel 1) C4123 se han especificado expresiones base distintas
Advertencia del compilador (nivel 1) C4124 __fastcall con comprobación de la pila es ineficaz
Advertencia del compilador (nivel 4) C4125 el dígito decimal finaliza la secuencia de escape octal
Advertencia del compilador (nivel 4) C4127 la expresión condicional es constante
Advertencia del compilador (nivel 1) C4129 "character": secuencia de escape de carácter no reconocida
Advertencia del compilador (nivel 4) C4130 "operator": operación lógica en dirección de una constante de cadena
Advertencia del compilador (nivel 4) C4131 "function": usa un declarador de estilo anterior
Advertencia del compilador (nivel 4) C4132 "object": se debe inicializar el objeto const
Advertencia del compilador (niveles 1 y 3) C4133 "expression": tipos incompatibles: de "type1" a "type2"
Advertencia del compilador C4137 'function': no hay valor devuelto de la función de punto flotante
Advertencia del compilador (nivel 1) C4138 "*/" se encontró fuera del comentario
Advertencia del compilador (nivel 1, error) C4141 "modifier": se utilizó más de una vez
Advertencia del compilador (nivel 1) C4142 "identifier": nueva definición de tipo sin efecto
Advertencia del compilador (nivel 1) C4143 no se admite "same_seg" pragma; utilice la asignación de __based
Advertencia del compilador (nivel 1) C4144 "expression": expresión relacional como expresión switch
Advertencia del compilador (nivel 1) C4145 "expression1": expresión relacional como expresión switch; posible confusión con "expression2"
Advertencia del compilador (nivel 2) C4146 operador unario menos aplicado a un tipo sin signo; el resultado aún no tiene signo
Advertencia del compilador (nivel 2) C4150 eliminación de puntero a tipo "type" incompleto; no se llamó a ningún destructor
Advertencia del compilador (nivel 4) C4152 extensión no estándar; conversión de puntero a función/datos en la expresión
Advertencia del compilador (nivel 1) C4153 conversión de puntero a función/datos en expresión
Advertencia del compilador (nivel 1) C4154 eliminación de una expresión de matriz; suministrada una conversión a puntero
Advertencia del compilador (nivel 1) C4155 eliminación de expresión de matriz sin utilizar el formato de matriz de 'delete'
Advertencia del compilador (nivel 2) C4156 eliminación de expresión de matriz sin utilizar el formato de matriz de "delete"; formato de matriz sustituido
Advertencia del compilador (nivel 1) C4157 el compilador C pasó por alto pragma
Advertencia del compilador (nivel 1) C4158 suponiendo #pragma pointers_to_members(full_generality, "inheritance_type")
Advertencia del compilador (nivel 3) C4159 #pragma "pragma"(pop,...): sacó el identificador insertado anteriormente "identifier"
Advertencia del compilador (nivel 1) C4160 #pragma "pragma"(pop,...): no se encontró el identificador insertado anteriormente "identifier"
Advertencia del compilador (nivel 3) C4161 #pragma "pragma"(pop...): hay más elementos pop que envíos de cambios
Advertencia del compilador (nivel 1) C4162 "identifier": no se encontró ninguna función con vinculación de C
Advertencia del compilador (nivel 1) C4163 "identifier": no está disponible como función intrínseca
Advertencia del compilador (nivel 1) C4164 'función': función intrínseca no declarada
Advertencia del compilador (nivel 3, desactivado) C4165 "HRESULT" se está convirtiendo en "bool"; ¿está seguro que quiere realizar esta operación?
Advertencia del compilador (nivel 1) C4166 convención de llamada no válida para el constructor o destructor
Advertencia del compilador (nivel 1) C4167 "function": solo está disponible como función intrínseca
Advertencia del compilador (nivel 1) C4168 límite del compilador: no hay tipos de depuración, elimine la base de datos de programa "database" y repita la compilación
Advertencia del compilador (nivel 1) C4172 devolución de dirección de la variable local o temporal optional_context
Advertencia del compilador (nivel 1) C4174 "name": no está disponible como #pragma component
Advertencia del compilador (nivel 1) C4175 #pragma component(browser, on): la información del explorador debe especificarse inicialmente en la línea de comandos
Advertencia del compilador (nivel 1) C4176 "subcomponent": subcomponente desconocido para el explorador #pragma component
Advertencia del compilador (nivel 1) C4177 #pragma "pragma" solamente se debe utilizar en el ámbito global o de espacio de nombres
Advertencia del compilador (nivel 1) C4178 constante case "constant" demasiado grande para el tipo de expresión switch
Advertencia del compilador (nivel 4, ya no se emite) C4179 "//*": analizado como "/" y "/\*": confusión con comentarios "//"
Advertencia del compilador (nivel 1) C4180 se ha omitido el calificador aplicado al tipo de función porque no tiene ningún significado
Advertencia del compilador C4181 se ha omitido el calificador aplicado al tipo de referencia
Advertencia del compilador (nivel 1) C4182 El nivel de anidamiento #include tiene una profundidad de nest_count; es posible que exista una recursividad infinita
Advertencia del compilador (nivel 1) C4183 "identifier": falta el tipo de valor devuelto; se supone que se trata de una función miembro que devuelve "int"
Advertencia del compilador (nivel 1) C4185 omitir el atributo #import desconocido "attribute"
Advertencia del compilador (nivel 1) C4186 El atributo de #import "attribute" requiere argumentos "argument_count"; se omitió
Advertencia del compilador (nivel 1) C4187 Los atributos #import "attribute1" y "attribute2" son incompatibles; se omiten ambos.
Advertencia del compilador (nivel 1) C4188 la expresión constante no es de tipo integral
Advertencia del compilador (niveles 3 y 4) C4189 "identifier": la variable local se inicializó, pero no se hace referencia a esta
Advertencia del compilador (nivel 1) C4190 "identifier1" tiene la vinculación de C especificada, pero devuelve UDT "identifier2", que no es compatible con C
Advertencia del compilador (nivel 3, desactivado) C4191 'operación': conversión no segura de 'type_of_expression' a 'type_required'
Realizar una llamada de función mediante el puntero resultante puede provocar un error en el programa
Advertencia del compilador (nivel 3) C4192 excluyendo automáticamente "identifier" al importar la biblioteca de tipos "library"
Advertencia del compilador (nivel 3) C4193 #pragma warning(pop): sin "#pragma warning(push)" coincidente
Advertencia del compilador (nivel 1) C4194 #pragma start_map_region no se puede anidar: ignorado
Advertencia del compilador (nivel 1) C4195 #pragma stop_map_region utilizado sin coincidencia con #pragma start_map_region: ignorado
Advertencia del compilador (nivel 1) C4196 se esperaba "token1" o token2. Se encontró "token3"
Advertencia del compilador (nivel 3) C4197 "type": volatile de nivel superior en la conversión se omite
Advertencia del compilador (nivel 1, nivel 2, nivel 3 y nivel 4) C4199 message

Consulte también

Advertencias y errores de las herramientas de compilación y del compilador de C/C++
Advertencias del compilador de C4000 a C5999