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

IAR EW MISRA C

Справочник

Правило

Тип

Вид

116

Все библиотеки, используемые для получения

Стандартные

(О)

 

результирующего кода, должны быть написаны

библиотеки

 

 

в соответствии с положениями данного

 

 

 

документа и соответственно аттестованы.

 

 

117

Действительность значений, передаваемых

Стандартные

(О)

 

библиотечным функциям, должна подвергаться

библиотеки

 

 

проверке.

 

 

118

Динамическое выделение памяти в куче не

Стандартные

(О)

 

должно использоваться.

библиотеки

 

119

Индикатор ошибки errno не должен

Стандартные

(О)

 

использоваться.

библиотеки

 

120

Макрос offsetof из библиотеки <stddef.h>

Стандартные

(О)

 

не должен использоваться.

библиотеки

 

121

Заголовочный файл <locale.h> и функция

Стандартные

(О)

 

setlocale не должны использоваться.

библиотеки

 

122

Макрос setjmp и функция longjmp не

Стандартные

(О)

 

должны использоваться.

библиотеки

 

123

Средства поддержки сигнала <signal.h> не

Стандартные

(О)

 

должны использоваться.

библиотеки

 

124

Библиотека ввода-вывода <stdio.h> не

Стандартные

(О)

 

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

библиотеки

 

125

Библиотечные функции atof, atoi и atol из

Стандартные

(О)

 

библиотеки <stdlib.h> не должны

библиотеки

 

 

использоваться.

 

 

126

Библиотечные функции abort, exit, getenv и

Стандартные

(О)

 

system из библиотеки <stdlib.h> не должны

библиотеки

 

 

использоваться.

 

 

127

Функции поддержки времени из библиотеки

Стандартные

(О)

 

<time.h> не должны использоваться.

библиотеки

 

Среда

Правило 1 (О)

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

Исходный код должен соответствовать стандарту языка Си ISO 9899 и не должен использовать расширения языка.

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

Компилятор выдает ошибку, если компиляция производится в любом из следующих режимов:

компиляция с расширениями IAR;

компиляция кода C++.

Замечание. Компилятор не выдает данную ошибку, если расширения IAR применяются при помощи директивы #pragma.

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

int __far my_far_variable; int port @ 0xbeef;

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

#pragma location=0xbeef int port;

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

13

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