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

 
 
> Инициализация данных, в KEIL
SanyaKID
сообщение Aug 23 2007, 07:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 13-09-06
Пользователь №: 20 359



Что-то я в последнее время много топиков развел, но все же....

В компиляторе REAL VIEW в KEIL, в соответствии с сишными стандартами, явно неинициализированные переменные по дефолту инициализируются нулями, но, напимер, в моем случае это очень неудобно.
У меня есть дополнение к некоторому массиву данных который храниется во флеше, которое должно быть инициализировано 0xFF-ми, но это дополнение в общем случае переменной длины, которая вычисляется в зависимости от длины массива данных. Тоесть сейчас я компилируюсь с одной длиной дополнения, а завтра эта длина может поменяться. И соответственно очень не хочется каждый раз руками изменять в коде количество 0xFF-ов, к тому же можно просто забыть про это, что вызовет ошибки...
Так вот, я копался в хелпах Кейла, но так и не нашел директивы, меняющей инициализацию по умолчанию... Может быть есть возможность делать инициализацию как-нибуть в автомате? Может макросы такие есть или всетаки директивы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VAI
сообщение Aug 23 2007, 11:34
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Кстати, про выравнивание:
в версии 3.1 компилятора RV, что идет в комплекте с МДК3.11, корректно работает #pragma pack() - как в "IAR C/EC++ Compiler", "Borland C++Builder" или "Microsoft Visual C++".
Код
#pragma pack( 1 ) - выравнивание по байтам
#pragma pack( 2 ) - по 2 байта
#pragma pack( 4 ) - по 4 байта и т.д.
#pragma pack()    - выравнивание по умолчанию

В документации пока не отражено, но я потестировал, посмотрел листинги..
По ссылке косвенное подтверждение...
http://www.keil.com/forum/docs/thread9546.asp


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 05:25
Рейтинг@Mail.ru


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