Compartir a través de


Advertencias del compilador de Microsoft C/C++ de C4200 a C4399

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

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 resolver varios 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, explore la lista de errores y advertencias por herramienta y tipo en la tabla de contenido de esta 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 aterrizó en esta página y cree que el mensaje de error o advertencia necesita una explicación adicional, háganoslo saber con los botones de comentarios de esta página. 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 elija Ayuda > Enviar comentarios > Informar de un problema, o envíe una sugerencia mediante Ayuda > Enviar comentarios > Sugerir una funcionalidad. 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 para errores y advertencias en los foros de Microsoft Q&A C++. 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 (niveles 2 y 4) C4200 se ha utilizado una extensión no estándar: matriz de tamaño cero en struct/union
Advertencia del compilador (nivel 4) C4201 se ha utilizado una extensión no estándar: struct/union sin especificar
Advertencia del compilador (nivel 4) C4202 se ha utilizado una extensión no estándar: "...": el parámetro de prototipos de la lista de nombres no es válido
Advertencia del compilador C4203 se ha utilizado una extensión no estándar: unión con variable miembro estática
Advertencia del compilador (nivel 4) C4204 se ha utilizado una extensión no estándar: inicializador de agregado no constante
Advertencia del compilador (nivel 4) C4205 Se ha utilizado una extensión no estándar: declaración de función estática en el ámbito de una función
Advertencia del compilador (nivel 4) C4206 se ha utilizado una extensión no estándar: la unidad de traducción está vacía
Advertencia del compilador (nivel 4) C4207 se ha utilizado una extensión no estándar: forma de inicializador extendida
Advertencia del compilador (nivel 4) C4208 se ha utilizado una extensión no estándar: delete [exp]; expresión evaluada pero omitida
Advertencia del compilador (nivel 4) C4210 se ha utilizado una extensión no estándar: la función se le ha asignado ámbito de archivo
Advertencia del compilador (nivel 4) C4211 se ha utilizado una extensión no estándar: extern se ha vuelto a definir como static
Advertencia del compilador (nivel 4) C4212 se ha utilizado una extensión no estándar: la declaración de función ha utilizado puntos suspensivos
Advertencia del compilador (nivel 4) C4213 se ha utilizado una extensión no estándar: conversión en valor L
Advertencia del compilador (nivel 4) C4214 se ha utilizado una extensión no estándar: tipos de campos de bits distintos de int
Advertencia del compilador (nivel 1) C4215 se ha utilizado una extensión no estándar: long float
Advertencia del compilador (nivel 1) C4216 se ha utilizado una extensión no estándar: float long
Advertencia del compilador (nivel 4) C4218 se ha utilizado una extensión no estándar: se debe especificar al menos una clase de almacenamiento o un tipo
Advertencia del compilador (nivel 4) C4220 varargs coincide con los parámetros restantes
Advertencia del compilador (nivel 4) C4221 se ha utilizado una extensión no estándar: 'identifier': no se puede inicializar utilizando la dirección de la variable automática 'variable'
Advertencia del compilador (niveles 1 y 4) C4223 se ha utilizado una extensión no estándar: matriz con valor distinto de valor L convertida a puntero
Advertencia del compilador (nivel 1) C4224 se ha utilizado una extensión no estándar: el parámetro formal 'identifier' se definió anteriormente como tipo
Advertencia del compilador (nivel 1, error) C4226 se ha utilizado una extensión no estándar: 'keyword' es una palabra clave obsoleta
Advertencia del compilador (nivel 1) C4227 se ha utilizado un anacronismo: se omiten los calificadores de la referencia
Advertencia del compilador (nivel 1) C4228 se ha utilizado una extensión no estándar: se omiten los calificadores después de coma en la lista de declaradores
Advertencia del compilador (nivel 1, error) C4229 se ha utilizado un anacronismo: se omiten los modificadores de datos
Advertencia del compilador (nivel 1) C4230 se ha utilizado un anacronismo: los modificadores y calificadores están intercalados; se ha omitido el calificador
Advertencia del compilador (nivel 4) C4232 se ha utilizado una extensión no estándar: 'identifier': la dirección de dllimport 'dllimport' no es estática; no se garantiza la identidad
Advertencia del compilador (nivel 1, error) C4233 se ha utilizado una extensión no estándar: la palabra clave 'keyword' solo se admite en C++, no en C
Advertencia del compilador (nivel 4, error) C4234 se ha utilizado una extensión no estándar: la palabra clave 'keyword' está reservada para uso futuro
Advertencia del compilador (nivel 1, error) C4235 se ha utilizado una extensión no estándar: la palabra clave 'keyword' no se admite en esta arquitectura
Advertencia del compilador (nivel 1) C4237 La palabra clave 'keyword' no está soportada todavía, pero está reservada para uso futuro.
Advertencia del compilador (nivel 4) C4238 se ha utilizado una extensión no estándar: valor-R de clase utilizado como valor L
Advertencia del compilador (nivel 4) C4239 se ha utilizado una extensión no estándar: 'token': conversión de 'type1' a 'type2'
Advertencia del compilador (nivel 3) C4240 se ha utilizado una extensión no estándar: ahora el acceso a 'classname' se ha definido como 'access_specifier1', antes se definió como 'access_specifier2'
Advertencia del compilador (nivel 3, desactivado) C4242 "identifier": conversión de "type1" a "type2", posible pérdida de datos
Advertencia del compilador (nivel 3) C4243 La conversión conversion_type de 'type1' a type2' existe, pero es inaccesible
Advertencia del compilador (nivel 2) C4244 'conversion_type': conversión de 'type1' a 'type2', posible pérdida de datos
Advertencia del compilador (niveles 2 y 3 y nivel 4) C4244 'conversion_type': conversión de 'type1' a 'type2', posible pérdida de datos
Advertencia del compilador (nivel 4) C4245 'conversion_type': conversión de 'type1' a 'type2', desajuste entre firmado/no firmado
Advertencia del compilador (nivel 2) C4250 'classname': hereda 'base_classname::member' mediante dominación
Advertencia del compilador (nivel 2) C4251 'type': 'type1' debe tener dll-interface para que lo usen los clientes de 'type2'
Advertencia del compilador (nivel 4, desactivado) C4254 'operator': conversión de 'type1':'field_bits' a 'type2':'field_bits', posible pérdida de datos
Advertencia del compilador (nivel 4, desactivado) C4255 "function" : no se ha proporcionado un prototipo de función: convirtiendo "()" a "(void)"
Advertencia del compilador (nivel 4) C4256 "function": el constructor para la clase con bases virtuales tiene '...'; puede que las llamadas no sean compatibles con versiones anteriores de Visual C++
Advertencia del compilador (nivel 1) C4258 'variable': se ha omitido la definición del bucle For; se ha utilizado la definición del ámbito de inclusión
Advertencia del compilador (nivel 4, desactivado) C4263 'function': la función miembro no invalida ninguna función miembro virtual de clase base
Advertencia del compilador (nivel 4, desactivado) C4264 'virtual_function': no hay ninguna sobrecarga disponible para la función miembro virtual de la clase base 'classname'; la función está oculta
Advertencia del compilador (nivel 3, desactivado) C4265 "classname": la clase tiene funciones virtuales, pero su destructor no trivial no es virtual; puede que las instancias de esta clase no se destruyan correctamente
Advertencia del compilador (nivel 4, desactivado) C4266 'virtual_function': no hay ninguna sobrecarga disponible para la función miembro virtual de la clase base 'classname'; la función está oculta
Advertencia del compilador (nivel 3) C4267 'variable': conversión de 'size_t' a 'type'; posible pérdida de datos
Advertencia del compilador (nivel 4) C4268 'identifier': los datos estáticos/globales 'const' inicializados con el constructor predeterminado generado por compilador rellenan el objeto con ceros
Advertencia del compilador (nivel 1) C4269 'identifier': los datos automáticos de 'const' inicializados con el constructor predeterminado generado por el compilador proporcionan resultados no confiables
Advertencia del compilador (nivel 1) C4272 'function': está marcada con __declspec(dllimport); debe especificar la convención de llamadas nativa al importar una función.
Advertencia del compilador (nivel 1) C4273 'function': vinculación de DLL incoherente
Advertencia del compilador (nivel 1) C4274 #ident se ha omitido; consulte la documentación de #pragma comment(exestr, 'string')
Advertencia del compilador (nivel 2) C4275 Interfaz no DLL classkey 'identifier1' utilizada como base para la interfaz DLL classkey 'identifier2'
Advertencia del compilador (nivel 1) C4276 'function': no se ha proporcionado ningún prototipo; se supone que no hay parámetros
Advertencia del compilador (nivel 1) C4277 el elemento importado 'classname::member' existe como miembro de datos y miembro de función; se ha omitido el miembro de datos
Advertencia del compilador (niveles 3 y 4) C4278 'identifier': el identificador de la biblioteca de tipos 'library' ya es una macro; utilice el calificador 'rename'
Advertencia del compilador (niveles 3 y 4) C4279 'identifier': el identificador de la biblioteca de tipos 'library' es una palabra clave; utilice el calificador 'rename'
Advertencia del compilador (nivel 3) C4280 'operator ->' era autorecursivo mediante el tipo 'type'
Advertencia del compilador (nivel 3) C4281 La recursividad 'operator ->' se produjo a través del tipo 'type1'
Advertencia del compilador (nivel 3) C4282 y después mediante el tipo 'type2'
Advertencia del compilador (nivel 3) C4283 y mediante el tipo 'typeN'
Advertencia del compilador (nivel 2) C4285 tipo de valor devuelto para "identifier::operator ->" es recursivo si se aplica mediante la notación infix
Advertencia del compilador (nivel 1) C4286 'derived_type': se detecta mediante la clase base ('base_type') en la línea line_number
Advertencia del compilador (nivel 3, desactivado) C4287 "operator": no coinciden las constantes sin signo o negativas
Advertencia del compilador (nivel 1) C4288 se ha utilizado una extensión no estándar: 'variable': la variable de control de bucles declarada en el bucle For se utiliza fuera del ámbito del bucle For; origina conflictos con la declaración en el ámbito externo
Advertencia del compilador (nivel 4, desactivado) C4289 se ha utilizado una extensión no estándar: 'variable': la variable de control de bucles declarada en el bucle For se utiliza fuera del ámbito del bucle For
Advertencia del compilador (nivel 3) C4290 Se ha omitido la especificación de excepciones de C++, excepto para indicar que una función no es __declspec(nothrow)
Advertencia del compilador (nivel 1) C4291 'declaration': no se ha encontrado un operador delete que coincida; no se liberará memoria si la inicialización produce una excepción
Advertencia del compilador (nivel 1) C4293 'shift_operator': recuento de desplazamientos negativo o demasiado grande; comportamiento impredecible
Advertencia del compilador (nivel 4) C4295 'array': la matriz es demasiado pequeña para incluir un carácter nulo final
Advertencia del compilador (nivel 4, desactivado) C4296 'operator': la expresión siempre es boolean_value
Advertencia del compilador (nivel 1) C4297 'function': se suponía que la función no producía una excepción, pero lo hace
Advertencia del compilador (nivel 4) C4298 'identifier': el identificador de la biblioteca de tipos 'library' ya es una macro; se cambiará el nombre a '__identifier'
Advertencia del compilador (nivel 4) C4299 'identifier': el identificador de la biblioteca de tipos 'library' es una palabra clave; se cambiará el nombre a '__identifier'
Advertencia del compilador C4301 'derived_class::function': la invalidación de la función virtual solo difiere de 'base_class::function' por un calificador const/volatile
Advertencia del compilador (nivel 2) C4302 "conversion": truncamiento de "type1" a "type2"
Advertencia del compilador (ya no emitido) C4303 La conversión de estilo C de "type1" a "type2" está en desuso, use static_cast, __try_cast o dynamic_cast
Advertencia del compilador (niveles 1y 2 y nivel 4) C4305 "conversion": truncamiento de "type1" a "type2"
Advertencia del compilador (nivel 4) C4306 'conversion': conversión de 'type1' a 'type2' de mayor tamaño
Advertencia del compilador (nivel 2) C4307 'operator': desbordamiento de constante integral firmado
Advertencia del compilador (nivel 2) C4308 constante entera negativa convertida a tipo sin signo
Advertencia del compilador (nivel 2) C4309 'conversion': truncamiento de valor constante
Advertencia del compilador (nivel 4) C4310 la conversión trunca el valor constante
Advertencia del compilador (nivel 1) C4311 'variable': truncamiento de puntero de 'type1' a 'type2'
Advertencia del compilador (nivel 1) C4312 'operation': conversión de 'type1' a 'type2' de mayor tamaño
Advertencia del compilador (nivel 1) C4313 'function': '%format_specifier' en formato de cadena entra en conflicto con el argumento "argument_number de tipo "type'
Advertencia del compilador C4314 se esperaba que el parámetro de tipo pragma fuera '32' o '64'
Advertencia del compilador (nivel 4) C4315 'classname': puede que el puntero 'this' para el miembro 'member' no esté alineado alignment como esperaba el constructor
Advertencia del compilador (nivel 3) C4316 'identifier': puede que el objeto asignado en el montón no esté alineado alignment
Advertencia del compilador (nivel 1) C4317 "'printf_family'": no se pasaron suficientes argumentos para la cadena de formato
Advertencia del compilador C4318 transmisión de constante cero como longitud para memset
Advertencia del compilador (nivel 1) C4319 'operator': cero para extender 'type1' a 'type2' de mayor tamaño
Advertencia del compilador (nivel 1) C4321 se genera de forma automática un IID para la interfaz 'interface'
Advertencia del compilador (nivel 1) C4322 se genera de forma automática un CLSID para la clase 'class'
Advertencia del compilador (nivel 1) C4323 reutilizando CLSID registrado para la clase 'class'
Advertencia del compilador (nivel 4) C4324 "structname": la estructura se rellenó debido al especificador de alineación
Advertencia del compilador (nivel 1) C4325 se han omitido los atributos para la sección estándar "section"
Advertencia del compilador (nivel 1) C4326 el tipo de valor devuelto de 'function' debe ser 'type1' en lugar de 'type2'
Advertencia del compilador C4327 'assignment': la alineación indirecta de LHS ('alignment1') es mayor que RHS ('alignment2')
Advertencia del compilador C4328 'function': la alineación indirecta del parámetro formal parameter_number (parameter_alignment) es mayor que la alineación del argumento real (argument_alignment)
Advertencia del compilador (nivel 1) C4329 el especificador de alineación se omite en la enumeración
Advertencia del compilador (nivel 1) C4330 se ha omitido el atributo 'attribute' de la sección 'section'
Advertencia del compilador (nivel 1) C4333 'shift_operator': desplazamiento a la derecha muy grande; se perderán datos
Advertencia del compilador (nivel 3) C4334 'shift_operator': El resultado de un desplazamiento de 32 bits se ha convertido implícitamente a 64 bits (¿se pretendía un desplazamiento de 64 bits?)
Advertencia del compilador (nivel 1) C4335 Formato de archivo Mac detectado: convierta el archivo de código fuente en formato DOS o UNIX
Advertencia del compilador (nivel 4) C4336 importar biblioteca de tipos 'library1' a la que se hace referencia cruzada antes de importar 'library2'
Advertencia del compilador (nivel 4) C4337 la biblioteca de tipos 'library1' a la que se hace referencia cruzada en 'library2' se está importando de forma automática
Advertencia del compilador (nivel 4) C4338 #pragma directiva: se usa la sección estándar "section"
Advertencia del compilador (nivel 4, desactivado) C4339 'type': el uso del tipo no definido detectado en los metadatos de WinRT/CLR : el uso de este tipo puede provocar una excepción en tiempo de ejecución.
Advertencia del compilador (nivel 1) C4340 'value': valor ajustado de un valor positivo a uno negativo
Advertencia del compilador (nivel 1, desactivado, ya no emitido) C4342 cambio de comportamiento: se ha llamado a "function", pero en versiones anteriores se llamaba a un operador miembro
Advertencia del compilador (nivel 4) C4343 #pragma optimize("g",off) invalida la opción /Og
Advertencia del compilador (nivel 1) C4344 cambio de comportamiento: el uso de argumentos de plantilla explícitos da como resultado la llamada a 'function'
Advertencia del compilador (nivel 1) C4346 'name': un nombre dependiente no es un tipo
Advertencia del compilador (nivel 1) C4348 'type': nueva definición de parámetro predeterminado: parámetro parameter_number
Advertencia del compilador (nivel 1, desactivado, ya no emitido) C4350 cambio de comportamiento: se llamó a 'member1' en lugar de a 'member2'
Advertencia del compilador (nivel 1) C4352 'identifier': función intrínseca ya definida
Advertencia del compilador (nivel 1) C4353 se ha utilizado una extensión no estándar: constante 0 como expresión de función. Utilice en su lugar la función intrínseca '__noop'
Advertencia del compilador (nivel 1 y nivel 4, desactivado) C4355 'this': utilizado en la lista de inicializadores de miembro base
Advertencia del compilador (nivel 2) C4356 'miembro': no se puede inicializar el miembro de datos estático mediante una clase derivada
Advertencia del compilador (nivel 3) C4357 se ha omitido el argumento de matriz de parámetros encontrado en la lista de argumentos formales para el delegado 'delegate' al generar 'function'
Advertencia del compilador (nivel 1) C4358 'operator': el tipo de retorno de los delegados combinados no es 'void'; el valor devuelto no está definido
Advertencia del compilador (niveles 1 y 3) C4359 'type': el especificador de alineación es menor que la alineación real (alignment), y se omitirá.
Advertencia del compilador (nivel 2) C4362 'type': CLR no admite alineaciones mayores de 8 bytes
Advertencia del compilador (nivel 1) C4364 #using para el ensamblado 'assembly' ya aparecía previamente en location(line_number) sin el atributo as_friend; as_friend no se aplica
Advertencia del compilador (nivel 4, desactivado) C4365 'expression': conversión de 'type1' a 'type2', desajuste entre signed/unsigned
Advertencia del compilador (nivel 4) C4366 El resultado del operador 'operator' unario podría no estar alineado.
Advertencia del compilador (nivel 3) C4367 La conversión de 'type1' a 'type2' puede causar una excepción de desalineación de tipo de datos
Advertencia del compilador (nivel 1, error) C4368 no se puede definir 'member' como miembro de 'type' administrado: no se admiten tipos mixtos
Advertencia del compilador (nivel 1) C4369 'enumerator': el valor del enumerador 'value' no se puede representar como 'type', el valor es 'new_value'
Advertencia del compilador (nivel 4, ya no emitido) C4370 'classname': el diseño de clase cambió desde una versión anterior del compilador debido a una mejora del empaquetado
Advertencia del compilador (nivel 3, desactivado) C4371 'classname': el diseño de clase puede haber cambiado desde una versión anterior del compilador debido a una mejora del empaquetado del miembro 'member'
Advertencia del compilador (nivel 4) C4373 "function": la función virtual invalida "base_class_function", las versiones anteriores del compilador no realizaban una invalidación cuando los parámetros solo se diferenciaban en los calificadores const y volatile
Advertencia del compilador (nivel 1) C4374 'function1': el método no virtual 'function2' no implementará el método de interfaz
Advertencia del compilador (nivel 1) C4375 El método no público 'method2' no invalida 'method2'
Advertencia del compilador (nivel 1) C4376 access specifier 'specifier1specifier2:' ya no se admite: use 'new_specifier:' en su lugar
Advertencia del compilador (nivel 1) C4377 de manera predeterminada, los tipos nativos son privados; -d1PrivateNativeTypes está en desuso
Advertencia del compilador (nivel 1) C4378 Para ejecutar los inicializadores, debe obtener punteros de funciones; utilice System::ModuleHandle::ResolveMethodHandle
Advertencia del compilador (nivel 1) C4379 Este compilador no admite la versión 'version_number' de Common Language Runtime. El uso de esta versión puede provocar resultados inesperados.
Advertencia del compilador (nivel 1, error) C4380 'class': un constructor predeterminado no puede estar desusado
Advertencia del compilador (nivel 1) C4381 'function1': el método no público 'function2' no implementará el método de interfaz
Advertencia del compilador (nivel 1) C4382 se genera "type": un tipo con el destructor __clrcall o el constructor de copia solamente se puede detectar en el módulo /clr:pure
Advertencia del compilador (nivel 1) C4383 'instance_dereference_operator': el significado de desreferenciar un identificador puede cambiar cuando existe un operador 'instance_dereference_operator' definido por el usuario; escriba el operador como función estática para que sea explícito con relación al operando
Advertencia del compilador (nivel 1) C4384 #pragma 'pragma_name' solamente se debe utilizar en el ámbito global
Advertencia del compilador (nivel 3) C4387 'alternative': se ha tenido en cuenta
Advertencia del compilador (nivel 4, desactivado) C4388) 'expression': no coinciden signed/unsigned
Advertencia del compilador (nivel 4) C4389 'operator': no coinciden signed/unsigned
Advertencia del compilador (nivel 3) C4390 ';': se encontró una instrucción controlada vacía; ¿es esa la intención?
Advertencia del compilador (nivel 1) C4391 'function_signature': tipo incorrecto de valor devuelto para la función intrínseca, se esperaba 'type'
Advertencia del compilador (nivel 1, error) C4392 'function_signature': número incorrecto de argumentos para la función intrínseca, se esperaban 'argument_count' argumentos
Advertencia del compilador (nivel 1) C4393 'variable': const no tiene efecto en el miembro de datos literal; se pasará por alto
Advertencia del compilador (nivel 1, error) C4394 "función": el símbolo por appdomain no se debe marcar con __declspec(dllexport)
Advertencia del compilador (nivel 1) C4395 'function': a la función miembro se invocará en una copia del miembro de datos initonly 'member'
Advertencia del compilador (nivel 2) C4396 "function": El especificador inline no se puede usar cuando una declaración "friend" hace referencia a una especialización de una plantilla de función
Advertencia del compilador (nivel 1) C4397 DefaultCharSetAttribute se pasa por alto
Advertencia del compilador (nivel 3) C4398 'variable': el objeto global por proceso no puede trabajar correctamente con varios dominios de aplicación; utilice __declspec(appdomain)
Advertencia del compilador (nivel 1, error) C4399 'symbol': el símbolo por proceso no se debe marcar con __declspec(dllimport) cuando se compila con /clr:pure

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