gpt4 book ai didi

c++ - 奇怪的 SAL 注释警告

转载 作者:太空狗 更新时间:2023-10-29 19:50:46 24 4
gpt4 key购买 nike

我正在尝试为我的项目使用 Micosoft 的 SAL 注释,但是我收到以下警告,我不知道为什么。

例如,我创建了一个新的 C++ 控制台应用程序,并具有以下代码:

#include <sal.h>

class Whatever
{
public:
_Check_return_ int Method(__in int number) ;
};

int main()
{
return 0;
}

当我使用 Visual Studio 2008 进行编译时,我收到以下警告:

警告 C6540:在此函数上使用属性注释将使其所有现有的 __declspec 注释无效

在文件“c1xxast”中

我做错了什么?如果我删除 _Check_return___in,警告就会消失。

我找不到任何对警告 C6550 的引用。但是,可以在此处找到相同的文本:http://msdn.microsoft.com/en-us/library/dd445322.aspx ,但这不是很有帮助。

最佳答案

问题可能是因为您混合了 SAL 注释类型。尽管在 MSDN 上说得很清楚,但有两种类型的 SAL 注释:属性和……呃……不是。

#define<sal.h> VC2005 使用无属性版本并以下划线开头,后跟一个小写 字母。较新的 VC2008 版本扩展到编译器属性并以下划线开头(和结尾)后跟一个大写字母。

您混合了两种类型:

属性:

  • _在_
  • _Check_return_

非属性:

  • __在
  • __checkReturn

尝试更改注释以始终如一地使用单一类型。

This blog post对此做了更多解释。

关于c++ - 奇怪的 SAL 注释警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/652542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com