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


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

"оператор": логическая операция с адресом строковой константы

Использование оператора с адресом строкового литерала создает непредвиденный код.

Следующий пример приводит к возникновению ошибки C4130:

// C4130.cpp
// compile with: /W4
int main()
{
   char *pc;
   pc = "Hello";
   if (pc == "Hello") // C4130
   {
   }
}

Инструкция if сравнивает значение, хранящееся в указателе pc , с адресом строки Hello, которая выделяется отдельно при каждом возникновении строки в коде. Оператор if не сравнивает строку, на которую указывает pc строка Hello.

Для сравнения строк используйте функцию strcmp .