声明使用SAL定义类型(?)的宏时发生错误C2059

时间:2019-05-17 23:42:42

标签: c visual-studio sal

我继承了一些代码,有问题的代码得以构建(对于我无权访问的人,使用VS的较早版本。)我试图将其迁移到VS2019。

我不断收到的一个错误是: 错误C2059语法错误:'[' 网址:\ CodeAnalysis \ SourceAnnotations.h 290

有问题的用途是这样的:

#include <CodeAnalysis/SourceAnnotations.h>
#define F_PRINT [SA_FormatString(Style="printf")] const char *  
int x_sprintf(char *buffer, size_t buf_size, F_PRINT format, ...);

如果我按如下所示修改x_sprintf,则它可以正常工作(并且通过工作,我的意思是说一行的错误消失了。)

int x_sprintf(char *buffer, size_t buf_size, [SA_FormatString(Style="printf")] const char * format, ...);

一个问题是,这个F_PRINT被全部使用,所以我宁愿不要在整个地方都进行更改(至少现在还没有。)另外,我知道这是在某个时候构建的(没有做任何更改)意味着错误主要在于我的环境。也许我缺少一些编译器命令标志?

也许至少在宏上使用了某些SAL格式后,它已被贬值了吗?如果是这样,我该如何重新格式化?

0 个答案:

没有答案