Предупреждение C6326
Потенциальное сравнение константы с другой константой
Замечания
Это предупреждение указывает на потенциальное сравнение константы с другой константой, которая является избыточным кодом. Необходимо проверка, чтобы убедиться, что намерение правильно записано в коде. В некоторых случаях можно упростить условие теста для достижения того же результата.
Имя анализа кода: CONST_CONST_COMP
Пример
Следующий код создает это предупреждение, так как сравниваются две константы:
#define LEVEL
const int STD_LEVEL = 5;
const int value =
#ifdef LEVEL
10;
#else
5;
#endif
void f()
{
if( value > STD_LEVEL)
{
// code...
}
else
{
// code...
}
}
В следующем коде показан один из способов исправления этого предупреждения с помощью C++17 if constexpr
.
#define LEVEL
const int STD_LEVEL = 5;
const int value =
#ifdef LEVEL
10;
#else
5;
#endif
void f()
{
if constexpr( value > STD_LEVEL)
{
// code...
}
else
{
// code...
}
В следующем коде показано, как исправить это предупреждение с помощью инструкций #ifdef, чтобы определить, какой код должен выполняться, если C++17 недоступен:
#define LEVEL
const int STD_LEVEL = 5;
const int value =
#ifdef LEVEL
10;
#else
5;
#endif
void f ()
{
#ifdef LEVEL
{
// code...
}
#else
{
// code...
}
#endif
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по