Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Непонятки с predefined symbols
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
GetSmart
Есть такая штука в настройках проекта как:

C/C++ Compiler -> Preprocessor -> Defined symbols (one per line)

Вроде бы полезная весчь, но... То ли голова квадратная, то ли руки кривые, но не получается у меня там объявить символ со значением, подобно классическому:

#define symbol value

Почему-то можно объявить символ без значения, а на значение компилятор ругается.
Кто-нить знает как это сделать?
Сергей Борщ
Цитата(GetSmart @ Apr 27 2007, 21:24) *
Кто-нить знает как это сделать?
Убрать пробелы. В окне:
Цитата
HARDWARE_VERSION=2
в коде:
Код
#if     HARDWARE_VERSION == 1
    VICVectCntl2 = (1<<5) | VIC_UART0;                            // Enable vector interrupt for RS485
    VICVectCntl3 = (1<<5) | VIC_UART1;                            // Enable vector interrupt for RS232
#elif   HARDWARE_VERSION == 2
    VICVectCntl2 = (1<<5) | VIC_UART1;                            // Enable vector interrupt for RS485
    VICVectCntl3 = (1<<5) | VIC_UART0;                            // Enable vector interrupt for RS232
#endif
GetSmart
Вот спасибо. Сам бы точно не догадался.
zltigo
Цитата(GetSmart @ Apr 28 2007, 01:17) *
Вот спасибо. Сам бы точно не догадался.

Все на самом деле очень просто - это банально передается в командную строку компилятору c ключем -D symbol=value и с пробелами получаем кучу странных ключей. Хотя, конечно могли и повыбрасывать пробелы создатели "оболочек" smile.gif
SasaVitebsk
Хочу узнать у бывалых. Сам не нашёл.
Есть ли предопределённый символ который показывает режим компиляции - debug/release. Вроде где-то мельком видел - перерыл всё. Конечно это не принципиально, но приятнее.
zltigo
Цитата(SasaVitebsk @ May 29 2007, 23:48) *
Есть ли предопределённый символ который показывает режим компиляции - debug/release.

Как ни странно - есть NDEBUG для Release. Но это является косвенным признаком, ибо по жизни предназначен для дирижирования assert.
IgorKossak
Цитата(SasaVitebsk @ May 29 2007, 23:48) *
Есть ли предопределённый символ который показывает режим компиляции - debug/release. Вроде где-то мельком видел - перерыл всё. Конечно это не принципиально, но приятнее.

Мельком, это то, что сказал zltigo, а на самом деле слова debug/release не являются зарезервированными для среды. Это даже не режимы, а всего лишь названия конфигураций. Опции конфигурации (как и название) могут быть любыми, даже с точностью до наоборот.
SasaVitebsk
Спасибо
lamerok
Цитата(SasaVitebsk @ May 30 2007, 09:49) *
Спасибо

Добавлю DEBUG, включает поддержку макроса ASSERT
zltigo
Цитата(lamerok @ May 30 2007, 12:26) *
Добавлю DEBUG, включает поддержку макроса ASSERT

Было уже:
Цитата
ибо по жизни предназначен для дирижирования assert.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.