C6269
Обновлен: Ноябрь 2007
C6269
Предупреждение C6269. Возможно, неверный порядок операций: разыменование игнорируется
Данное предупреждение указывает, что результат разыменования указателя пропускается, однако возникает вопрос, почему разыменование указателя выполняется в первую очередь.
Компилятор корректно оптимизирует неуместное разыменование. Однако в некоторых случаях данный дефект может являться следствием ошибки приоритета или логики.
Одной из распространенных причин данного дефекта является оператор в форме:
*p++;
Если в результате данного оператора предполагалось просто увеличить указатель p, разыменование не требуется; однако если предполагалось увеличить расположение, на которое указывает p, то программа не будет вести ожидаемым образом, поскольку конструкция *p++ интерпретируется как * (p++), а не как (*p)++.
Пример
Данное предупреждение создается в следующем коде:
#include <windows.h>
void f( int *p )
{
// code ...
if( p != NULL )
*p++;
// code ...
}
Для устранения этого предупреждения используйте скобки, как указано в следующем коде:
#include <windows.h>
void f( int *p )
{
// code ...
if( p != NULL )
(*p)++;
// code ...
}