次の方法で共有


警告 C6269

操作の順序が正しくない可能性があります。逆参照は無視されます

この警告は、ポインターの逆参照の結果が無視されることを示します。これにより、最初の場所でポインターが逆参照されている理由が問われることになります。

解説

コンパイラは、余分な逆参照を適切に最適化します。 しかし、場合によっては、この欠陥は優先順位エラーや論理エラーを反映していることがあります。

この欠陥の一般的な原因の 1 つは、次の形式の式ステートメントです。

*p++;

このステートメントの意図が単にポインターpをインクリメントする場合、逆参照は不要です。ただし、指している場所pをインクリメントする場合、コンストラクトは代わりに(*p)++解釈されるためp++、プログラムは意図した(p++)とおりに動作しません。

コード分析名: POINTER_DEREF_DISCARDED

この警告が発生するコード例を次に示します。

#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 ...
}