Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как в Keil в окне компиляции вывести значение расчитанного макроса
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Halfback
Положим вычисляется макрос:

Код
#define a 5
#define b 4
#define c (a+b)



В окне компиляции хотелось бы видеть сумма a+b=9
Полагаю что это можно сделать при помощи #message вот так #message "сумма a+b = ???" , но вот как туда засуснуть значение 'c' не могу понять.

Как это сделать? Спасибо!
XVR
Никак. Препроцессор не занимается вычислениями - он тупо подставляет текст. Вашу сумму посчитает компилятор на этапе разбора исходника (который происходит после препроцессора). А #message выводит препроцессор - на этой стадии еще никто ничего не подсчитывал
Halfback
Хорошо. А по завершении компиляции вывести можно?
XVR
Цитата(Halfback @ Apr 13 2011, 11:08) *
Хорошо. А по завершении компиляции вывести можно?
Результат есть только в процессе компиляции, а она сама по себе ничего выводить не умеет (кроме сообщений об ошибках и варнингов). Результатом его (компилятора) работы является код.
Собственно от этого и надо плясать - либо формировать варнинг, применяя 'нехорошие' средства языка (можно легко сделать на С++, и если повезет - на С), либо выковыривать результат из бинарника после компиляции (если формат объектного файла elf - то это можно сделать через objdump и grep)

В любом случае это весьма и весьма заковыристый процесс cranky.gif
demiurg_spb
Всё это можно проделать легко и просто ещё до препроцессора при помощи make и shell.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.