C6269

تحذير C6269: ممكن غير صحيح ترتيب العمليات: عدم مرجعية تجاهل

يشير هذا التحذير عدم مرجعية نتيجة مؤشر يتم تجاهل، الذي يرفع السؤال لسبب المؤشر هو الآن dereferenced في اﻷول مرة.

المترجم سيقوم بشكل صحيح أمثلية بعيداً عدم مرجعية مبرر. ومع ذلك، قد على هذا عيب يعكس خطأ أسبقية أو منطق في بعض الحالات،.

واحد الأسباب عام لترتيب هو defect هو جملة تعبير النموذج:

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