реклама на сайте
подробности

 
 
> Объявление глобального массива в C, длина которого константная переменная
Grizzzly
сообщение Nov 26 2017, 15:37
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Удивлен, что компилятор Keil с включенным стандартом C99 не выдал ошибки для такого кода:

Код
const uint32_t N = 20;
static MyStruct_t Example[N];


В C в отличие от C++ const означает только read-only. Variable length array, появившийся в C99, применяется к локальным массивам в run-time.
Почему в моем случае нет ошибки для глобального массива? Странное поведение.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Nov 26 2017, 19:19
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



ARM Compiler armcc user guide. Есть на сайте ARM и Keil. Где что перечислено, не знаю. Я его только местами смотрел. Про --strict там конкретно написано, на что реагирует. Я его так и нашел по слову const.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Nov 26 2017, 19:46
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(ViKo @ Nov 26 2017, 22:19) *
ARM Compiler armcc user guide. Есть на сайте ARM и Keil. Где что перечислено, не знаю. Я его только местами смотрел. Про --strict там конкретно написано, на что реагирует. Я его так и нашел по слову const.

Ага, пасиб. Guide этот знаю, завтра почитаю подробнее.
UPD.: Вот тут весь списочек: http://infocenter.arm.com/help/index.jsp?t...e/CHDGFDID.html
Только сходу свой случай не нашел.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 16:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016