Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите разобраться с #define
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
alkaes
Добрыий день всем!
Я использую в программе много инициализаций со здвигом для удобной задачи началных аддресов вроде:
Код
#define FIRST_ADD 50
#define SEC_ADD FIRST_ADD+1
#define THIRD_ADD SEC_ADD+8
#define FORTH_ADD SEC_ADD +16

value = spi_ee_read(FIRST_ADD);
for(i=0;i<8;i++) valuearr[i] = spi_ee_read(THIRD_ADD +i);


Вопрос как я могу увидеть все присвоенные значения #define которые видет компайлер?
(кроме того чтоб самому с калькулятором не считать smile.gif )
jorikdima
Для компилятора все ваши дефайны эквиваленты тому, что вы запишите все числа в примом виде текстом - это всего лишь текстовая подстановка, выполняемая препроцессором. Поэтому в коде, поступившем к компайлеру будет не THIRD_ADD +i, а 58 + i. Может ли ваша IDE в режиме отладки сообразить, что например, при наведении мышки на THIRD_ADD надо высветить уже рассчитанное препроцессором значение, не знаю
Сергей Борщ
Цитата(alkaes @ Mar 26 2008, 12:05) *
Вопрос как я могу увидеть все присвоенные значения #define которые видет компайлер?
(кроме того чтоб самому с калькулятором не считать smile.gif )
Занести в глобальную переменную и посмотреть листинг. Другого способа в голову не приходит, ибо все эти вычисления производит оптимизатор компилятора а не препроцессор.

Здесь мне еще советовали arm-elf-cpp file.c -dM | sort, но это только показывает список символов, а не их конечные значения
xelax
Сделать вот так:
$(CROSS_COMPILE)gcc -E source.c > outpute

и вы увидете всё что видит компилер после текстовых подстановок препроцессором
andrew_b
Цитата(xelax @ Mar 26 2008, 13:59) *
$(CROSS_COMPILE)gcc -E source.c > outpute
$(CROSS_COMPILE)gcc -E source.c -o outpute
xelax
Цитата(andrew_b @ Mar 26 2008, 16:30) *
$(CROSS_COMPILE)gcc -E source.c -o outpute


С -o с командной строки не формирует sad.gif , а с > формирует outpute файл
Harbour
также обьектник собранный с -ggdb3 содержит, и соотв. отображает по имени, инфу о дефайнах
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.