Набор правил "Рекомендуемые правила для машинного кода"
Собственные рекомендуемые правила сосредоточены на наиболее важных и распространенных проблемах в машинном коде, включая потенциальные дыры безопасности и сбои приложений. Этот набор правил включает все правила в наборе правил для собственных минимальных правил .
Включите этот набор правил в любой настраиваемый набор правил, создаваемый для собственных проектов.
Правило | Description |
---|---|
C6001 | Использование неинициализированной памяти |
C6011 | Разыменование пустого (NULL) указателя |
C6029 | Использование значения unchecked |
C6031 | Возвращаемое значение игнорируется |
C6053 | Вызов завершается нулем |
C6054 | Отсутствие нулевого завершения |
C6059 | Неверное объединение |
C6063 | Пропущен строковый аргумент функции форматирования |
C6064 | Пропущен целочисленный аргумент функции форматирования |
C6066 | Пропущен аргумент-указатель функции форматирования |
C6067 | Пропущен аргумент указателя на строку для функции форматирования |
C6101 | Возврат неинициализированной памяти |
C6200 | Индекс превышает максимальный размер буфера |
C6201 | Индекс превышает максимальный размер буфера стека |
C6214 | Недопустимое приведение HRESULT к boOL |
C6215 | Недопустимая приведение boOL в HRESULT |
C6216 | Недопустимый вставляемый компилятором boOL в HRESULT |
C6217 | Недопустимый тест HRESULT с not |
C6220 | Недопустимое сравнение HRESULT с -1 |
C6226 | Недопустимое назначение HRESULT до -1 |
C6230 | Недопустимое использование HRESULT в качестве логического |
C6235 | Ненулевая константа с логическим или |
C6236 | Логическая или с ненулевым константой |
C6237 | Ноль с логическими и теряет побочные эффекты |
C6242 | Локальная отмена принудительной очистки |
C6248 | Создание DACL null |
C6250 | Дескрипторы нераспрестанных адресов |
C6255 | Незащищенное использование Alloca |
C6258 | Использование потока завершения |
C6259 | Мертвый код в битовом или ограниченном коммутаторе |
C6260 | Использование арифметики байтов |
C6262 | Чрезмерное использование стека |
C6263 | Использование alloca in Loop |
C6268 | Отсутствующие скобки в приведения |
C6269 | Указатель не учитывается |
C6270 | Пропущен аргумент с плавающей запятой для функции форматирования |
C6271 | Лишний аргумент у функции форматирования |
C6272 | Аргумент не с плавающей запятой у функции форматирования |
C6273 | Нецелочисленный аргумент у функции форматирования |
C6274 | Несимвольный аргумент у функции форматирования |
C6276 | Недопустимое приведение строки |
C6277 | Недопустимый вызов CreateProcess |
C6278 | Несоответствие в массиве -New Scalar-Delete |
C6279 | Несоответствие скалярных новых массивов |
C6280 | Несоответствие распределения памяти |
C6281 | Побитовое отношение приоритета |
C6282 | Задание заменяет тест |
C6283 | Несоответствие примитивного массива-нового скалярного удаления |
C6284 | Недопустимый объект в качестве аргумента функции форматирования |
C6285 | Логические или константы |
C6286 | Ненулевая логическая или потеря побочных эффектов |
C6287 | Избыточный тест |
C6288 | Взаимное включение по логическому и является ложным |
C6289 | Взаимное исключение по логическому или имеет значение true |
C6290 | Приоритет логического НЕ и побитового И |
C6291 | Приоритет логического НЕ и побитового ИЛИ |
C6292 | Число циклов по максимальному значению |
C6293 | Число циклов от минимального числа |
C6294 | Тело цикла никогда не выполнялось |
C6295 | Бесконечный цикл |
C6296 | Цикл выполняется только один раз |
C6297 | Результат смены приведения к большему размеру |
C6299 | Сравнение bitfield to Boolean |
C6302 | Недопустимый аргумент в виде строки символов у функции форматирования |
C6303 | Недопустимый аргумент в виде строки расширенных символов у функции форматирования |
C6305 | Несоответствие размера и количества |
C6306 | Недопустимый переменный аргумент при вызове функции |
C6308 | Утечка realloc |
C6310 | Неправовая константа фильтра исключений |
C6312 | Цикл выполнения "Продолжение исключения" |
C6314 | Побитовая или приоритетность |
C6317 | Не дополнять |
C6318 | Поиск исключений "Продолжить" |
C6319 | Игнорируется запятой |
C6324 | Копирование строк вместо сравнения строк |
C6328 | Возможное несоответствие типа аргумента |
C6331 | Недопустимые флаги VirtualFree |
C6332 | Недопустимый параметр VirtualFree |
C6333 | Недопустимый размер VirtualFree |
C6335 | Дескриптор процесса утечки |
C6381 | Отсутствуют сведения о завершении работы |
C6383 | Переполнение буфера байт-счетчика элементов |
C6384 | Деление размера указателя |
C6385 | Переполнение при чтении |
C6386 | Переполнение при записи |
C6387 | Недопустимое значение параметра |
C6388 | Недопустимое значение параметра |
C6500 | Недопустимое свойство атрибута |
C6501 | Конфликт значений свойств атрибутов |
C6503 | Ссылки не могут быть пустыми (NULL) |
C6504 | Значение NULL у переменной, не являющейся указателем |
C6505 | MustCheck для Void |
C6506 | Размер буфера для массива или переменной, не являющейся указателем |
C6508 | Попытка записи константы |
C6509 | Использование return в предусловии |
C6510 | Завершение нулем у переменной, не являющейся указателем |
C6511 | Свойство MustCheck должно иметь значение Yes или No |
C6513 | Размер элемента без размера буфера |
C6514 | Размер буфера превышает размер массива |
C6515 | Размер буфера для переменной, не являющейся указателем |
C6516 | Нет свойств у атрибута |
C6517 | Допустимый размер у буфера, недоступного для чтения |
C6518 | Записываемый размер у буфера, недоступного для записи |
C6522 | Недопустимый размер у строкового типа |
C6525 | Недоступное расположение у строки недопустимого размера |
C6527 | Недопустимая аннотация: свойство "NeedsRelease" не может использоваться для значений типа void |
C6530 | Неизвестный стиль строки формата |
C6540 | Если для данной функции использовать аннотации атрибута, все ее существующие аннотации __declspec станут недействительными |
C6551 | Недопустимая спецификация размера: синтаксический анализ выражения невозможен |
C6552 | Недопустимый Deref= или Notref=: синтаксический анализ выражения невозможен |
C6701 | Значение не является одним из допустимых значений (Yes/No/Maybe): |
C6702 | Значение не является строковым |
C6703 | Значение не является числом |
C6704 | Непредвиденная ошибка выражения аннотации |
C6705 | Ожидаемое число аргументов для аннотации не совпадает с фактическим числом аргументов |
C6706 | Непредвиденная ошибка аннотации |
C6995 | Не удалось сохранить XML-файл журнала |
C26100 | Состояние гонки |
C26101 | Не удалось правильно использовать переблокированную операцию |
C26110 | Не удалось сохранить блокировку вызывающего абонента |
C26111 | Не удалось освободить блокировку вызывающего абонента |
C26112 | Вызывающий не может содержать блокировку |
C26115 | Не удалось освободить блокировку |
C26116 | Не удалось приобрести или сохранить блокировку |
C26117 | Освобождение неопубликованной блокировки |
C26140 | Ошибка заметки SAL параллелизма |
C26441 | NO_UNNAMED_GUARDS |
C26444 | NO_UNNAMED_RAII_OBJECTS |
C26498 | USE_CONSTEXPR_FOR_FUNCTIONCALL |
C28020 | Выражение не является истинным при этом вызове |
C28021 | Аннотируемый параметр должен быть указателем |
C28022 | Класс функции (es) для этой функции не соответствует классам функций (es) в типдефе, используемому для его определения. |
C28023 | Назначаемая или передаваемая функция должна иметь _Function_class_ заметку по крайней мере для одного из классов(es) |
C28024 | Указатель функции, которому назначается, аннотирован с классом функции, который не содержится в списке классов функций. |
C28039 | Тип фактического параметра должен точно соответствовать типу. |
C28112 | Переменная, доступ к которой осуществляется через функцию Interlocked, всегда должна быть доступна через функцию Interlocked. |
C28113 | Доступ к локальной переменной через интерблокированную функцию |
C28125 | Функция должна вызываться из блока try/за исключением |
C28137 | Аргумент переменной должен быть (литеральной) константой |
C28138 | Вместо этого аргумент константы должен быть переменной |
C28159 | Вместо этого рекомендуется использовать другую функцию. |
C28160 | Ошибка аннотации |
C28163 | Функция никогда не должна вызываться из блока try/за исключением |
C28164 | Аргумент передается функции, которая ожидает указатель на объект (а не указатель на указатель) |
C28182 | Разыменование пустого (NULL) указателя. Этот указатель содержит то же значение NULL, которое содержал другой указатель. |
C28183 | Аргумент может быть одним значением и является копией значения, найденного в указателе. |
C28193 | Переменная содержит значение, которое необходимо проверить |
C28196 | Требование не удовлетворяется. (Выражение не оценивается как true.) |
C28202 | Недопустимая ссылка на нестатический член |
C28203 | Неоднозначная ссылка на член класса. |
C28205 | _Success_ или _On_failure_, используемые в незаконном контексте |
C28206 | Левая операнда указывает на структуру, используйте "->" |
C28207 | Левый операнд является структурой, используйте "." |
C28209 | Объявление для символа имеет конфликтующее объявление |
C28210 | Аннотации для контекста _on_failure_ не должны находиться в явном предконтексте |
C28211 | Для SAL_context ожидалось имя статического контекста |
C28212 | Для аннотации ожидалось выражение указателя |
C28213 | Заметка _Use_decl_annotations_ должна использоваться для ссылки, без изменения, предварительного объявления. |
C28214 | Допустимые имена параметров атрибута: p1...p9 |
C28215 | typefix нельзя применять к параметру, который уже имеет typefix |
C28216 | Аннотация checkReturn применяется только к постусловиям для конкретного параметра функции. |
C28217 | Для функции число параметров у аннотации не совпадает с числом в файле |
C28218 | Для параметра функции параметр заметки не совпадает с параметром, найденным в файле |
C28219 | Для параметра аннотации ожидался член перечисления |
C28220 | Для параметра аннотации ожидалось целочисленное выражение |
C28221 | Для параметра аннотации ожидалось строковое выражение |
C28222 | __yes, __no или __maybe ожидаемых для заметки |
C28223 | Не найден ожидаемый токен/идентификатор для аннотации, параметр |
C28224 | Аннотации требуются параметры |
C28225 | Не найдено правильное число обязательных параметров в аннотации |
C28226 | Аннотация не может также быть PrimOp (в текущем объявлении) |
C28227 | Аннотация не может также быть PrimOp (см. предыдущее объявление) |
C28228 | Параметр аннотации: невозможно использовать тип в аннотации |
C28229 | Аннотация не поддерживает параметры |
C28230 | Тип параметра не содержит членов. |
C28231 | Аннотация допустима только для массива |
C28232 | Ни к одной аннотации не применено pre, post или deref |
C28233 | Pre, post или deref применено к блоку |
C28234 | Выражение _At_ не применяется к текущей функции |
C28235 | Функция не может использоваться изолированно как аннотация |
C28236 | Аннотацию нельзя использовать в выражениях |
C28237 | Аннотация в параметре больше не поддерживается |
C28238 | Аннотация в параметре содержит несколько значений value, stringValue и longValue. Используйте paramn=xxx |
C28239 | Аннотация в параметре одновременно содержит значение value, stringValue или longValue и выражение paramn=xxx. Используйте только paramn=xxx |
C28240 | Аннотация в параметре содержит param2, но не содержит param1 |
C28241 | Аннотация для функции в параметре не распознана |
C28243 | Заметки для функции в параметре требуется больше разыменований, чем допускает фактический аннотируемый тип |
C28244 | Заметка для функции имеет неуправляемый параметр или внешнюю заметку |
C28245 | Заметка для функции добавляет заметки к this в функции, не являющейся членом |
C28246 | Аннотация параметра для функции не соответствует типу параметра |
C28250 | Несогласованная аннотация функции: предыдущий экземпляр содержит ошибку. |
C28251 | Несогласованная аннотация функции: этот экземпляр содержит ошибку. |
C28252 | Несогласованная аннотация функции: параметр имеет другие аннотации для этого экземпляра. |
C28253 | Несогласованная аннотация функции: параметр имеет другие аннотации для этого экземпляра. |
C28254 | <>dynamic_cast() не поддерживается в заметках |
C28262 | В функции обнаружена синтаксическая ошибка для аннотации |
C28263 | Во встроенной функции обнаружена синтаксическая ошибка условной аннотации |
C28267 | В аннотациях для функции обнаружена синтаксическая ошибка для аннотации. |
C28272 | Аннотация для функции: параметр не согласуется с объявлением функции при проверке |
C28273 | Функция: причины не согласуются с объявлением функции |
C28275 | Параметр для _Macro_value_ имеет значение NULL |
C28279 | Для символа обнаружен begin без соответствующего end |
C28280 | Для символа обнаружен end без соответствующего begin |
C28282 | Строки формата должны находиться в предусловиях |
C28285 | Для функции синтаксическая ошибка в параметре |
C28286 | Для функции синтаксическая ошибка рядом с окончанием |
C28287 | Для функции синтаксическая ошибка в заметке _At_() (нераспознанное имя параметра) |
C28288 | Для функции синтаксическая ошибка в заметке _At_() (недопустимое имя параметра) |
C28289 | Для функции: ReadableTo или WritableTo не содержало спецификацию ограничения в качестве параметра |
C28290 | Количество внешних элементов в аннотации для функции превышает фактическое число параметров |
C28291 | После NULL/не NULL на уровне разыменовывания 0 параметра не имеет смысла для функции. |
C28300 | Несовместимые типы операндов выражения для оператора |
C28301 | Для первого объявления функции отсутствуют аннотации. |
C28302 | На заметке найден дополнительный оператор _Deref_. |
C28303 | Неоднозначный оператор _Deref_ был найден в заметке. |
C28304 | Некорректно помещенный оператор _Notref_ был найден применен к токену. |
C28305 | При синтаксическом анализе токена обнаружена ошибка. |
C28306 | Заметка о параметре неустойчива |
C28307 | Заметка о параметре неустойчива |
C28350 | Заметка описывает ситуацию, к которой неприменимы условия. |
C28351 | Аннотация описывает ситуацию, когда динамическое значение (переменная) не может использоваться в условии. |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по