C/C++ 代码分析警告

本节列出介于 C1250 和 C28351 之间的 C/C++ 代码分析警告。

本节内容

警告编号

描述

C1250

警告的 C1250:无法加载插件

C1252

警告的 C1252:在插件之间的循环或缺少的依赖项:需要 GUID

C1253

警告的 C1253:无法对加载模块文件

C1254

警告的 C1254:插件版本不匹配:版本不匹配 PREfast 驱动程序的版本

C1255

警告的 C1255:PCH 数据用于插件存在不正确的长度

C1256

警告的 C1256:必须编写 PCH 和读取

C1257

警告的 C1257:插件初始化失败

C6001

警告 C6001:使用未初始化的内存 <variable>

C6011

警告 C6011:正在取消 NULL 指针 <name> 的引用

C6029

警告 C6029:对 <function> 的调用中可能会发生缓冲区溢出: 使用未经检查的值

C6031

警告 C6031:返回值被忽略: <function> 可能会返回意外的值

C6053

警告 C6053:对 <function> 的调用不能为字符串 <variable> 添加字符串零终止符

C6054

警告 C6054:字符串 <variable> 不能以零结尾

C6059

警告 C6059:<function> 调用中的长度参数不正确。 应传递剩余字符数,而不是 <variable> 的缓冲区大小

C6063

警告 C6063:缺少 <function> 的字符串参数(对应于转换说明符 <number>)

C6064

警告 C6064:缺少 <function> 的整型参数(对应于转换说明符 <number>)

C6066

警告 C6066:传递了非指针参数 <number>,而对 <function> 的调用需要指针参数

C6067

警告 C6067:参数 <number> 在对 <function> 调用中必须是字符串的地址

C6101

警告的 C6101:返回未初始化的内存

C6200

警告 C6200:索引 <name> 超出了 <min> 至 <max> 的范围,即非堆栈缓冲区 <variable> 的有效索引范围

C6201

警告 C6201:<variable> 中缓冲区溢出,该缓冲区可能是在堆栈中分配的: 索引 <name> 超出了 <min> 至 <max> 的有效索引范围

C6211

警告 C6211:由于出现异常,正在泄漏内存 <pointer>。 应考虑使用局部 catch 块清理内存

C6214

警告 C6214:语义不同的整数类型之间的强制转换: HRESULT 转换为 Boolean 类型

C6215

警告 C6215:语义不同的整数类型之间的强制转换: Boolean 类型转换为 HRESULT

C6216

警告 C6216:语义不同的整数类型之间由编译器插入的强制转换: Boolean 类型转换为 HRESULT

C6217

警告 C6217:语义不同的整数类型之间的隐式强制转换: 使用“not”测试 HRESULT。 应考虑改用 SUCCEEDED 或 FAILED 宏

C6219

警告 C6219:语义不同的整数类型之间的隐式强制转换: 将 HRESULT 与 1 或 TRUE 进行比较。 应考虑改用 SUCCEEDED 或 FAILED 宏

C6220

警告 C6220 - 语义不同的整数类型之间的隐式强制转换: 将 HRESULT 与 -1 进行比较。 应考虑改用 SUCCEEDED 或 FAILED 宏

C6221

警告 C6221:语义不同的整数类型之间的隐式强制转换: 将 HRESULT 与一个整数进行比较。 应考虑改用 SUCCEEDED 或 FAILED 宏

C6225

警告 C6225:语义不同的整数类型之间的隐式强制转换: 将 1 或 TRUE 赋给 HRESULT。 应考虑改用 S_FALSE

C6226

警告 C6226:语义不同的整数类型之间的隐式强制转换: 将 -1 赋给 HRESULT。 应考虑改用 E_FAIL

C6230

警告 C6230:语义不同的整数类型之间的隐式强制转换: 在 Boolean 上下文中使用 HRESULT

C6235

警告 C6235:(<non-zero constant> || <expression>)始终为非零常数

C6236

警告 C6236:(<expression> || <non-zero constant>)始终为非零常数

C6237

警告 C6237:(<zero> && <expression>)始终为零。 任何情况下都不会计算其中的 <expression>,且可能具有负面影响

C6239

警告 C6239:(<non-zero constant> && <expression>)的值始终等于 <expression> 的计算结果。 是否使用按位与运算符?

C6240

警告 C6240:(<expression> && <non-zero constant>)的值始终等于 <expression> 的计算结果。 是否使用按位与运算符?

C6242

警告 C6242:从此 try 块中跳转将强制展开局部堆栈。 这样会严重影响性能

C6244

警告 C6244:<variable> 的局部声明遮蔽了此前位于 <line> 行(<file> 中)的声明

C6246

警告 C6246:<variable> 的局部声明遮蔽了外部作用域中具同名的声明。 附加信息: 请参见此前位于 <location> 的声明。

C6248

警告 C6248:将 SECURITY_DESCRIPTOR 的 DACL 设置为 NULL 将产生一个不受保护的对象

C6250

警告 C6250:不使用 MEM_RELEASE 标志调用 <function> 可能会释放内存,但不会释放地址说明符 (VAD);这样会导致地址空间泄漏

C6255

警告 C6255:_alloca 通过引发堆栈溢出异常表明失败。 应考虑改用 _alloca_s

C6258

警告 C6258:使用 TerminateThread 将不允许进行相应的线程清理

C6259

警告 C6259:无法访问带标签的代码: switch 表达式中的(<expression> & <constant>)不能计算为 <case-label>

C6260

警告 C6260:sizeof * sizeof 在绝大部分情况下是错误的,打算使用字符数还是字节数?

C6262

警告 C6262:函数使用了堆栈中的 <constant> 个字节: 超过了 /analyze:stacksize<constant>。 请考虑将某些数据移到堆中

C6263

警告 C6263:在循环中使用 _alloca: 这样会很快造成堆栈溢出

C6268

警告 C6268:错误的运算顺序: (<TYPE1>)(<TYPE2>)x + y。 (<TYPE1>)((<TYPE2>)x + y)中可能缺少括号

C6269

警告 C6269:运算顺序可能不正确: 取消引用被忽略

C6270

警告 C6270:缺少 <function> 的浮点型参数: 添加一个对应于转换说明符 <number> 的浮点型参数

C6271

警告 C6271:向 <function> 传递了额外参数: 参数 <number> 未由格式字符串使用

C6272

警告 C6272:传递了非浮点型参数 <number>,而对 <function> 的调用需要浮点型参数

C6273

警告 6273:传递了非整型参数 <number>,而对 <function> 的调用需要整型参数: 如果当前传递的是一个指针值,应使用 %p

C6274

警告 C6274:传递了非字符型参数 <number>,而对 <function> 的调用需要字符型参数

C6276

警告 C6276:语义不同的字符串类型之间的强制转换: char* 到 wchar_t*。 使用无效的字符串会导致未定义的行为

C6277

警告 C6277:在对 <function> 的调用中使用的 NULL 应用程序名含未加引号的路径: 如果路径中包含空格将导致安全漏洞

C6278

警告 C6278:<variable> 使用数组 new [] 分配,但使用标量 delete 删除。 析构函数将不被调用

C6279

警告 C6279:<variable> 使用标量 new 分配,但使用数组 delete [] 删除

C6280

警告 C6280:<variable> 使用 <function> 分配,但使用 <function> 删除

C6281

警告 6281 - 运算顺序不正确: 关系运算符的优先级高于位运算符

C6282

警告 C6282:运算符不正确: 在 Boolean 上下文中执行了常数赋值。 应考虑改用“==”

C6283

警告 C6283:<variable> 使用数组 new [] 分配,但使用标量 delete 删除

C6284

警告 C6284:传递了对象参数“%d”,而对 <function> 的调用需要字符串参数。

C6285

警告 C6285:(<non-zero constant> || <non-zero constant>)的值始终为非零常数。 是否使用按位与运算符?

C6286

警告 C6286:(<non-zero constant> || <expression>)始终为非零常数。 任何情况下都不会计算其中的 <expression>,且可能具有负面影响

C6287

警告 C6287:冗余代码: 左右两侧的子表达式完全相同

C6288

警告 C6288:运算符不正确: 基于 && 的相同运算始终为 0。 是否希望改用 ||?

C6289

警告 C6289:运算符不正确: 基于 || 的互斥运算为非零常数。 是否希望改用 &&?

C6290

警告 C6290:对逻辑结果的位运算: ! 的优先级高于 &。 应改用 && 或 (!(x & y))

C6291

警告 C6291:对逻辑结果的位运算: ! 的优先级高于 |。 应改用 || 或 (!(x | y))

C6292

警告 C6292:for 循环定义错误: 从最大值开始向上计数

C6293

警告 C6293:for 循环定义错误: 从最小值开始向下计数

C6294

警告 C6294:for 循环定义错误: 初始条件不满足测试。 循环体未执行

C6295

警告 C6295:for 循环定义错误: <variable> 值始终介于“min”到“max”范围之间。 循环将无限执行

C6296

警告 C6296:for 循环定义错误: 循环体仅执行一次

C6297

警告 C6297:算术溢出: 对 32 位值进行移位操作,然后强制转换为 64 位值。 可能得到非预期的结果值

C6298

警告 C6298:将只读字符串 <pointer> 用作可写字符串参数: 这样会导致尝试写入静态只读内存并造成随机性崩溃

C6299

警告 C6299:对一个位字段和 Boolean 类型进行显式比较会产生意外的结果

C6302

警告 C6302:格式字符串不匹配: 传递了字符字符串参数 <number>,而对 <function> 的调用需要宽字符字符串参数

C6303

警告 C6303:格式字符串不匹配: 传递了宽字符字符串参数 <number>,而对 <function> 的调用需要字符字符串参数

C6305

警告 C6305:sizeof 和 countof 量值之间可能不一致

C6306

警告 C6306:不正确的 <function> 调用: 应考虑使用接受 va_list 作为参数的 <function>

C6308

警告 C6308:“realloc”可能返回 null 指针: 将 null 指针赋给 <variable> (后者将作为参数传递给“realloc”)将导致原始内存块泄漏

C6310

警告 C6310:异常筛选器中的非法常数会导致意外的行为

C6312

警告 C6312:可能是无限循环: 在一个 try-except 的异常筛选器表达式中使用常数 EXCEPTION_CONTINUE_EXECUTION

C6313

警告 C6313:运算符不正确: 不能使用按位与来测试零值标志。 应使用相等测试来检查零值标志

C6314

警告 C6314:运算顺序不正确: 按位或的优先级高于条件表达式运算符。 请使用括号明确指定优先级

C6315

警告 C6315:运算顺序不正确: 接位与的优先级高于按位或。 请使用括号明确指定优先级

C6316

警告 C6316:运算符不正确: 被测试的表达式为非零常数。 请使用按位与确定是否设置相应的位

C6317

警告 C6317:运算符不正确: 逻辑非(!)与 1 的补数(~)不可互换

C6318

警告 C6318:__try/__except 未正确定义: 在异常筛选器表达式中使用了常数 EXCEPTION_CONTINUE_SEARCH 或另一个计算结果为 0 的常数。 异常处理程序块中的代码将不会执行

C6319

警告 C6319:在被测试的表达式中使用了逗号运算符,导致左侧的参数在无副作用时被忽略

C6320

警告 C6320:异常筛选器表达式为常数 EXCEPTION_EXECUTE_HANDLER。 这样可能会屏蔽不打算处理的异常

C6322

警告 C6322:空的 _except 块

C6323

警告 C6323:对一个或多个 Boolean 类型使用算术运算符

C6324

警告 C6324:<函数 1> 的使用可能不正确: 是否希望使用 <函数 2>?

C6326

警告 C6326:可能对两个常数进行比较

C6328

警告 C6328:已将 <type> 作为参数 <number> 传递,而需要使用 <type> 调用 <function>

C6330

警告的 C6330:作为参数传递的错误类型调用函数

C6331

警告 C6331:无效的参数: 不允许将 MEM_RELEASE 和 MEM_DECOMMIT 与 <function> 一起传递。 这会导致此调用失败

C6332

警告 C6332:无效的参数: 不允许将 0 作为 dwFreeType 参数传递给 <function>。 这会导致此调用失败

C6333

警告 C6333:无效的参数: 不允许将 MEM_RELEASE 和非零 dwSize 参数一起传递给 <function>。 这会导致此调用失败

C6334

警告 C6334:将 sizeof 运算符应用于带有运算符的表达式可能产生意外的结果

C6335

警告 C6335:泄漏进程信息句柄 <handlename>

C6336

警告 C6336:算术运算符的优先级高于问号运算符,请使用括号明确指定优先级

C6340

警告的 C6340:作为参数传递的错误类型调用函数

C6381

警告 C6381:Shutdown API <function> 需要一个有效的 dwReason 或 lpMessage

C6383

警告 C6383:将元素数转换为字节数造成缓冲区溢出: 需要使用元素数作为参数 <number> 调用 <function>

C6384

警告 C6384:用另一值除指针的 sizeof 值

C6385

警告 C6385:无效的数据: 访问 <buffer name> 时,<size1> 个字节可读,但可能读取了 <size2> 个字节: 行: x, y

C6386

警告 C6386:缓冲区溢出: 访问 <buffer name> 时,<size1> 个字节可写,但可能写入了 <size2> 个字节: 行: x, y

C6387

警告 C6387:<argument> 可能是 <value>: 这不符合函数 <function name> 的规范: 行: x, y

C6388

警告 C6388:<argument> 不能是 <value>: 这不符合函数 <function name> 的规范: 行: x, y

C6400

警告 C6400:使用 <function name> 执行与常数字符串 <string name> 的不区分大小写的比较。 这样会在非英语区域设置中产生意外结果

C6401

警告 C6401:在默认区域设置中使用 <function name> 执行与常数字符串 <string name> 的不区分大小写的比较。 这样会在非英语区域设置中产生意外结果

C6500

警告 C6500:无效的批注: <name> 属性的值无效

C6501

警告 C6501:批注冲突: <name> 属性与以前指定的属性冲突

C6503

警告 C6503:批注冲突: 引用不可标记为 Null=Yes 或 Null=Maybe

C6504

警告 C6504:无效的批注: 属性只能用于指针值、指向成员的指针值或数组类型值

C6505

警告 C6505:无效的批注: MustCheck 属性不可用于 void 类型的值

C6506

警告 C6506:无效的批注: <name> 属性只能用于指针值或数组类型值

C6508

警告 C6508:无效的批注: 不允许对 const 值执行写访问

C6509

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

C6510

警告 C6510:无效的批注: NullTerminated 属性只能用于指针值或数组类型值

C6511

警告 C6511:无效的批注: MustCheck 属性必须为 Yes 或 No

C6513

警告 C6513:无效的批注: ElementSizeConst 需要额外的大小属性

C6514

警告 C6514:无效的批注: <name> 属性的值超出了数组的大小

C6515

警告 C6515:无效的批注: <name> 属性只能用于指针类型的值

C6516

警告 C6516:无效的批注: 没有为 <name> 特性指定属性

C6517

警告 C6517:批注冲突: 不能在不可读的缓冲区上指定 ValidElementsConst 和 ValidBytesConst

C6518

警告 C6518:批注冲突: 不能在不可写的缓冲区上指定 WriteableElementsConst 和 WriteableBytesConst

C6522

警告 C6522:大小规格无效: 表达式必须为整型

C6525

警告 C6525: 大小规格无效: 属性值可能无效

C6526

警告 C6526:大小规格无效: 表达式必须为数组类型或指针类型

C6527

警告的 C6527:无效的批注:“NeedsRelease” 属性在无效类型的值不能使用

C6530

警告 6530:无法识别的格式字符串样式 <name>

C6540

警告的 C6540:使用此功的属性批注将无效其所有现有 __declspec 批注

C6551

警告的 C6551:大小规格无效:parsable 的表达式

C6552

警告的 C6552:无效 Deref= 或 Notref=:parsable 的表达式

C6701

警告的 C6701:该值不 + 一有效是/否/可能值:<string>

C6702

警告的 C6702:该值不是字符串值:<string>

C6703

警告的 C6703:该值不是数字:<string>

C6704

警告的 C6704:意外的批注表达式错误:<annotation> [<why>]

C6705

警告的 C6705:批注错误需要批注的 <parameter> 找到的 <actual_number><expected_number> 参数。

C6706

警告的 C6706:批注的 <annotation>意外的批注错误:<why>

C6707

警告的 C6707:意外的模型错误:<why>

C26100

警告的 C26100:争用条件。 应由锁保护变量的 <var> <lock>。

C26101

警告的 C26101:无法为可变 <var>正确使用互锁操作。

C26105

警告的 C26105:锁定命令冲突。 获取具有级别 <level> 的锁 <lock> 导致顺序反向。

C26110

警告的 C26110:持有锁的调用方失败 <lock> 在调用函数之前 <func>。

C26111

警告的 C26111:释放锁的调用方失败 <lock> 在调用函数之前 <func>。

C26112

警告的 C26112:调用方不能在调用 <func>之前保存任何锁。

C26115

警告的 C26115:不能将释放功能 <func>的锁 <lock>。

C26116

警告的 C26116:无法获得或保存在 <func>的 <lock>。

C26117

警告的 C26117:释放对函数 <func>的 unheld 锁 <lock>。

C26130

警告的 C26130:缺少批注函数 <func>的_Requires_lock_held_ (<lock>) 或_No_competing_thread_。 否则它可以是争用条件。 应由锁保护变量的 <var> <lock>。

C26135

警告的 C26135:在功能 <func>缺少的批注 <annotation>。

C26140

警告的 C26140:并发 SAL 注释错误。

C26160

警告的 C26160:不能的调用方在调用函数之前持有锁 <lock> <func>。

C26165

警告的 C26165:不能将释放功能 <func>的锁 <lock>。

C26166

警告的 C26166:不能获取或悬停在功能 <func>的锁 <lock>。

C26167

警告的 C26167:可以将释放功能 <func>的 unheld 锁 <lock>。

C28020

警告的 C28020:该表达式 <expr> 不是真正的此调用

C28021

警告的 C28021:该参数说明与 <anno> 的 <param> 必须是指针

C28022

警告的 C28022:此函数选件类 <classlist1> 不匹配"用于 typedef 的功能选件类 <classlist2> 定义。

C28023

警告的 C28023:分配或传递的函数应至少有一个的一个 _Function_class_ 批注选件类中:<classlist>

C28024

警告的 C28024:分配到的函数指针说明与函数选件类 <class>,在功能选件类 <classlist>不包含。

C28039

警告的 C28039:实参 <operand> 的类型应完全匹配该类型 <typename>

C28103

警告的 C28103:泄漏的资源

C28104

警告的 C28104:应当访问的资源,如函数退出之前未获取

C28105

警告的 C28105:泄漏的资源因为异常

C28106

警告的 C28106:变量已经持有可能导致内存泄漏的资源

C28107

警告的 C28107:资源,在调用函数时,必须存储

C28108

警告的 C28108:变量来保存一个意外的资源

C28109

警告的 C28109:,在函数调用时,变量不能被保留

C28112

警告的 C28112:通过一个互锁的功能捕获的变量必须传递一个互锁的函数始终获取

C28113

警告的 C28113:访问局部变量传递一个互锁的功能

C28125

警告的 C28125:必须调用函数从一次尝试的内部/除块

C28137

警告的 C28137:可变参数应为 (文本) 常数

C28138

警告的 C28138:常数参数应为可变

C28159

警告的 C28159:考虑使用另一个函数。

C28160

警告的 C28160:错误批注

C28163

警告的 C28163:不应调用函数从一次尝试的内部/除块

C28164

警告的 C28164:传递给需要指向对象的指针的函数 (指向的不是指针)

C28182

取消引用 NULL 指针

C28183

警告的 C28183:参数可以是一个值,并在指针找到的值的副本

C28193

警告的 C28193:变量表示必须检查的值

C28194

警告的 C28194:函数声明,失真在变量的值并退出,而不这样做

C28195

警告的 C28195:该函数被声明为获取对变量的内存和退出,而不这样做

C28196

警告的 C28196:该要求是不够的。 (该表达式不计算结果为 true。)

C28197

警告的 C28197:可能泄漏的内存

C28198

警告的 C28198:可能泄漏的内存因为异常。

C28199

警告的 C28199:可使用未初始化的内存

C28202

警告的 C28202:非法引用非静态成员

C28203

警告的 C28203:明确引用类成员。 可以是 <name1> 或 <name2>

C28204

警告的 C28204: <function> :只有一个此超加载和于 <filename>(<line>)。<paramname>说明:不必说明两个或任何。

C28205

警告的 C28205:function>:用于一个非法上下文或 _On_failure_ 的 _Success_ : <why>

C28206

警告的 C28206: <expression> :左操作个指向结构,使用 ->

C28207

警告的 C28207: <expression>:左操作的是结构,使用 “.”

C28208

警告的 C28208:功能 <function> 以前定义具有不同的参数列表在 <file>(<line>)。 某些分析工具将产生不正确的结果

C28209

警告的 C28209:符号的声明一个具有冲突的说明

C28210

警告 28210: _On_failure_ 上下文的批注不能在显式之前上下文

C28211

警告的 C28211:为 SAL_context 预期的静态上下文名称

C28212

警告的 C28212:批注预期的指针表达式

C28213

警告的 C28213:必须使用 _Use_decl_annotations_ 批注,引用,而无需修改,一个以前的声明。 <why>

C28214

警告的 C28214:属性参数名称必须是 p1… p9

C28215

警告的 C28215:typefix 不能应用于已具有 typefix 的参数

C28216

警告的 C28216: _Check_return_ 批注只应用于特定函数参数的后期状态。

C28217

警告 28217:为函数,参数数目到批注的不匹配的所有文件

C28218

警告的 C28218:为函数参数,批注的参数不匹配的所有文件

C28219

警告的 C28119:枚举的成员批注应在该批注的参数

C28220

警告的 C28220:整数表达式批注应在该批注的参数

C28221

警告的 C28221:为批注的参数所需的字符串表达式

C28222

警告 28222: _Yes_、批注预期的 _No_或 _Maybe_

C28223

警告的 C28223:未找到预期的标记/标识符批注的参数,

C28224

警告的 C28224:批注需要参数

C28225

警告的 C28225:没有看到需的正确数目的参数批注中

C28226

警告的 C28226:批注不能同时是 PrimOp (在当前声明)

C28227

警告的 C28227:批注不能同时是 PrimOp (请参见前面声明)

C28228

警告的 C28228:批注参数:不能使用类型批注

C28229

警告的 C28229:批注不支持参数

C28230

警告的 C28230:参数的类型没有成员。

C28231

警告的 C28231:批注只适用于数组

C28232

警告的 C28232: _Pre_、_Post_或 _Deref_ 不适用于任何批注

C28233

警告的 C28233:之前,后置或 deref 会应用于块

C28234

警告的 C28234: _At_ 表达式不适用于流函数

C28235

警告的 C28235:函数不能单独并肩作战与批注

C28236

警告的 C28236:批注将不能在表达式

C28237

警告的 C28237:在参数的批注不再支持

C28238

警告的 C28238:在参数的批注具有多个值、stringValue 和 longValue。 使用 paramn=xxx

C28239

警告 28239:在参数的批注具有两个值、stringValue 或 longValue;并 paramn=xxx。 仅使用 paramn=xxx

C28240

警告 28240:在参数的批注没有 param2,但 param1

C28241

警告的 C28241:函数的批注参数中不识别

C28243

警告的 C28343:函数的批注在参数比批注的实际类型允许需要更多的取消引用

C28244

警告的 C28244:函数的批注具有一个 unparseable 参数/外部批注

C28245

警告的 C28245:函数的批注说明“this”在非成员函数

C28246

警告的 C28246:函数的“<name>”批注-参数“<parameter>”不匹配参数的类型

C28250

警告的 C28250:函数的不一致的批注:前面的实例有错误。

C28251

警告的 C28251:函数的不一致的批注:此实例都有一个错误

C28252

警告的 C28252:函数的不一致的批注:参数具有此实例的另一个批注

C28253

警告的 C28253:函数的不一致的批注:参数具有此实例的另一个批注

C28254

警告的 C28254: dynamic_cast<>() 在注释不支持

C28262

警告的 C28262:在该批注的语法错误批注中 <name>功能 <function> 找到

C28263

警告的 C28263:在一个条件批注的语法错误为内部批注找到

C28267

警告的 C28267:在注释的语法错误是函数 <function>的找到的批注 <name>。

C28272

警告的 C28272:函数的参数,批注,则请与函数声明不一致。

C28273

警告的 C28273:对于功能,主管与函数声明不一致。

C28275

警告的 C28275:为 _Macro_value_ 的参数为 null

C28278

警告的 C28278:函数名出现不在范围的原型。

C28279

警告的 C28279:对于符号,“启动”中找到,没有匹配的“结束”

C28280

警告的 C28280:对于符号,“结束”中找到,而不匹配“开始”

C28282

警告的 C28282:格式字符串必须在前置条件

C28283

警告的 C28283:对于符号,指定的大小规格不支持

C28284

警告的 C28284:对于符号,谓词对于非函数值符号当前支持

C28285

警告的 C28285:为函数,参数中的语法错误

C28286

警告的 C28286:为函数,在尾部附近的语法错误

C28287

警告的 C28287:为函数,在 _At_() 批注 (无法识别的参数名) 中的语法错误

C28288

警告的 C28288:为函数,在 _At_() 批注 (无效参数名) 中的语法错误

C28289

警告的 C28289:为功能:ReadableTo 或 WritableTo 没有限制规范作为参数

C28290

警告的 C28290:函数的批注的参数的实际数目包含多个外部

C28291

警告的 C28291:发送 null/notnull 在 deref 级别 0 对于功能 <function> 参数 <number>无意义的

C28300

警告的 C28300: <parameter_name>:不兼容的类型表达式操作的运算符的 <operator_name>

C28301

警告的 C28301: <function>的第一个声明的未批注。<note1> 参见 <filename>(<line>)。 <note2>

C28302

警告的 C28302:对于 C++ 引用参数 <parameter_name>,额外 _Deref_ 运算符在 <annotation>中。

C28303

警告的 C28303:对于 C++ 引用参数 <parameter_name>,不明确的 _Deref_ 运算符在 <annotation>中。

C28304

警告的 C28304:对于 C++ 引用参数 <parameter_name>,找到了不正确放置的 _Notref_ 运算符应用于 <token>。

C28305

警告的 C28305:错误,当发现后分析 <token>。

C28306

警告的 C28306:在参数的批注个用户已废弃的

C28307

警告的 C28307:在参数的批注个用户已废弃的

C28308

警告的 C28308:布局表格批注将指定的参数位置不正确。

C28309

警告 28309: <parameter_name>:批注操作线程必须是整数/枚举/指针类型。 不支持 Void 操作数和 C++ 重载运算符。 浮点数与整数近似。 类型:<typelist>。

C28350

警告的 C28350:批注 <annotation> 描述不是有条件地适用的情况。

C28351

警告的 C28351:批注 <annotation> 描述动态值 (变量) 的位置不能用于此情况。

请参见

其他资源

Guidelines for Writing Secure Code

使用代码分析来分析 C/C++ 代码质量