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. Se han creado algunos temas de error del compilador que el compilador no emite y ahora se redirigen a esta página, alternativamente.
Puede 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 (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