Поделиться через


Предупреждение компилятора (уровень 1) C4005

"идентификатор": макрос переопределение

Идентификатор макроса определяется дважды. Компилятор использует второе определение макроса.

Чтобы устранить ошибку, проверьте указанные ниже возможные причины ее возникновения.

  1. Определение макроса в командной строке и в коде с помощью директивы #define .

  2. Макросы, импортированные из файлов включения.

Возможные способы устранения этой ошибки

  1. Удалите одно из определений.

  2. Используйте директиву #undef перед вторым определением.

Следующий пример приводит к возникновению ошибки 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;
}