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

 
 
> генерация дефайнов, макросы препроцессора
SpiritDance
сообщение Jul 7 2008, 05:44
Сообщение #1


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



А как бы так извернутся с препроцессором?

Требуется код примерно такого вида:
Код
/* знгачения идут по порядку от базового целого */
#define X1 1200
#define X2 1201
#define X3 1203
.....
#define XN 12..

/* A1 и A2 идут в начаеле и они разных значений */
const t_mytype X_struct_array =
{
   A1, 0, {0},
   A2, 0, {0},
   X1, 0, {0},
   X2, 0, {0},
   .....
   XN, 0, {0}
}

где N зависит от модели устройства

Вопрос в том как сделать, чтобы не набивать X1 X2.. Xn а просто задать количество N и код сгенерился бы препроцессором?
постоянно сталкиваюсь с такой проблемой, а решения так и не нашел. Хочется уже один раз разобратся и не терять больше времени на возню.
Извиняюсь если не в тот раздел, больше не нашел куда приткнуть.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Непомнящий Евген...
сообщение Jul 7 2008, 05:59
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Можно посмотреть тут:
http://www.boostpro.com/tmpbook/preprocessor.html

Я не разбирался с ним плотно, вроде как примерно то. Если еще получится выдрать это из boost и присобачить к иару smile.gif

А вообще может быть написать скрипт (на чем-нить типа питона\перла\пхп), который будет генерить нужный вам файл. Этот вариант дает максимальную свободу. Я таким образом обрабатываю строковые константы.

Еще можно посмотреть на более мощные препроцессоры типа M4. Но (имхо) вариант со скриптом проще.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 08:58
Рейтинг@Mail.ru


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