C6031
تحذير C6031: إرجاع القيمة التي تم تجاهلها: قد <دالة> بإرجاع القيمة غير متوقعة
Th هو التحذير يشير إلى أن استدعاء دالة هو عدم التحقق من الالقيمة التي يتم إرجاعها لاستدعاء دالة إشارات الفشل عن طريق القيمة الإرجاع الخاصة بها. استناداً إلى أي دالة هو التي يتم استدعاء th هو عيب يؤدي إلى mهوbehavior البرنامج تبدو عشوائية، بما في ذلك فساد الأعطال والبيانات في حالات الخطأ أو المواقف المنخفضة-الموارد.
بشكل عام، فإنه هو غير اﻷمن افتراض أن استدعاء الدالة التي تتطلب dهوk الشبكة، ذاكرة أو موارد الأخرى سينجح دائماً. يجب دائماً فحص المتصل الالقيمة المرجعة ومعالجة الحالات الخطأ بشكل مناسب.
مثال
يلي تعليمات برمجية ينشئ هذا التحذير:
#include <stdio.h>
void f( )
{
fopen( "test.c", "r" ); // return value ignored
// code ...
}
لتصحيح هذا التحذير، تحقق من القيمة الإرجاع للدالة كما هو موضح فيما يلي تعليمات برمجية:
#include <stdio.h>
void f( )
{
FILE *stream;
if((stream = fopen( "test.c", "r" )) == NULL )
return;
// code ...
}
يلي تعليمات برمجية يستخدم دالة آمن fopen_sلتصحيح هذا التحذير:
#include <stdio.h>
void f( )
{
FILE *stream;
errno_t err;
if( (err = fopen_s( &stream, "test.c", "r" )) !=0 )
{
// code ...
}
}
يتم أيضا إنشاء هذا التحذير إذا كان المتصل بتجاهل القيمة المرجعة من دالة annotated مع MustCheckالخصائص كما هو موضح في التالية تعليمات برمجية:
#include <codeanalysis\sourceannotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)] bool func( );
void test_f()
{
func( ); //return value ignored
}
لتصحيح التحذير السابق، تحقق الالقيمة المرجعة كما هو موضح في التعليمة البرمجية التالية:
void test_f()
{
if( func( ) )
{
//code...
}
}