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