Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012 / MISRA / iar_ew_misra_c_rus.pdf
Скачиваний:
353
Добавлен:
10.02.2015
Размер:
413.93 Кб
Скачать

IAR EW MISRA C

Справочник

Правило 98 (О) В одном макроопределении должно быть не более одного включения оператора препроцессора # или ##.

Как проверяется правило

Компилятор выдает ошибку, если в комбинации используется более одного из символов # или ##. Например, появление обоих символов

# и ## в одном макросе вызовет ошибку.

Правило 99 (О)

Правило 100 (О)

Пример нарушения правила

#define FOO(x) BAR(#x) ## _var

Пример корректного кода

#define FOO(x) #x #define FOO(x) my_ ## x

Любое использование директивы #pragma должно быть документировано и объяснено.

Как проверяется правило

Компилятор и компоновщик не проверяют нарушение этого правила. Это правило требует ручной проверки.

Оператор препроцессора defined должен использоваться только в одной из двух стандартных форм.

Как проверяется правило

Компилятор выдает ошибку, если результат расширения макроса в выражении, управляющим условным включением, приводит к унарному оператору defined.

Указатели и массивы

Правила данного раздела относятся к указателям и массивам.

Правило 101 (Р)

Правило 102 (Р)

Арифметика указателей не должна использоваться.

Как проверяется правило

Компилятор выдает ошибку, если левый или правый операнд операторов +, -, += или -= является выражением типа указателя.

Допускается использование не более двух уровней косвенной адресации при помощи указателей.

Как проверяется правило

Компилятор выдает ошибку, если какой либо тип использует более,

чем два уровня косвенной адресации в объявлении или определении объекта или функции.

Перевод: Андрей Шлеенков, http://andromega.narod.ru, mailto:andromega@narod.ru

34

Соседние файлы в папке MISRA