Compartir vía


Advertencia del compilador (nivel 1) C4005

"identifier": redefinición de macros

El identificador de macro se define dos veces. El compilador usa la segunda definición de macro.

Posibles causas del error:

  1. Definición de una macro en la línea de comandos y en el código con una directiva #define.

  2. Macros importadas de archivos de inclusión.

Para corregir mediante las siguientes posibles soluciones

  1. Quite una de las definiciones.

  2. Use una directiva #undef antes de la segunda definición.

El ejemplo siguiente genera la advertencia C4005:

// C4005.cpp
// compile with: /W1 /EHsc
#include <iostream>
using namespace std;

#define TEST "test1"
#define TEST "test2"   // C4005 delete or rename to resolve the warning

int main() {
   cout << TEST << endl;
}