C6509

更新:2007 年 11 月

警告 C6509:无效的批注: 不能从前置条件引用“return”

此警告意味着不能在前置条件中使用 return [expression] 语句。return 语句用于终止函数的执行并返回对调用函数的控制。表达式的值(如果表达式存在的话)将返回到调用函数。

因为函数可能使用 return 语句来返回值,所以系统允许您将它指定为要用在后置条件中的属性值。

示例

在下面的代码中,因为“return”用在前置条件中,所以会生成此警告:

// 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);

若要更正此警告,请将“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
                    );