C6509
更新:2007 年 11 月
警告 C6509: 無效的附註: 'return' 無法從先前的條件參考
這項警告表示 return [expression] 陳述式 (Statement) 不能用於 Pre 條件中。return 陳述式會用於結束函式的執行,並且將控制權還給呼叫函式。如果運算式出現的話,運算式的值會傳回至呼叫函式。
因為函式可能會使用 return 陳述式傳回值,因此您可以將函式指定為屬性值,以便用於 Post 條件中。
範例
因為 'return' 會用於 Pre 條件中,所以下列程式碼會產生這項警告:
// C
#include <CodeAnalysis\SourceAnnotations.h>
int f([SA_Pre(ValidElements="return")] char *pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
int f([Pre(ValidElements="return")] char *pc);
若要更正這項警告,請在 Post 條件中使用 'return',如下列範例程式碼所示:
// C
#include <CodeAnalysis\SourceAnnotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)]int f(
[SA_Post(ValidElements="return")] char *pc
);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
[returnvalue:Post(MustCheck=Yes)]int f(
[Post(ValidElements="return")] char *pc
);