anonymous@RULINUX.NET~# | Last login: 2024-11-05 13:26:03 |
Регистрация Вход | Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск |
Форум - Development | [RSS] |
Есть дофига устройств которые висят каждое на своей ножке MCU, их конфигурация описывается в хидере примерно так:
Потом на каждое устройство определяются специфичные для него порты:
Функции которые со всем этим работают выглядят так: \code{ #define output_init(name) C_##name##_DDR |= (1
anonymous(*) (2011-09-28 01:38:00)
|
|
|
Скрыть
Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?Вот удалось на тестовом сайте запостить с более-менее форматированием: http://rulinux.dyndns.org/thread_4_page_1#msg12 |
Скрыть
Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?в сях внутри макроса другие макросы определять нельзя. Препроцессор, который разворачивает самый внешний макрос, не будет обрабатывать сгенерённый им код. Поэтому в сях такие задачи традиционно решаются без макросов, блоком switch() и константой, поставляемой в функцию как аргумент. У меня аналогичная но более сложная задача решалась отдельной функцией на лиспе, который создавал сишный исходник в момент компиляции. bugmaker(*)(2011-09-28 04:36:07)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.17) Gecko/20110422 Ubuntu/10.04 (lucid) Firefox/3.6.17 |
Скрыть
Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?Жаль.. Думал есть какой выкрутас. В рантайм это исполняться не должно, свичи не катят ещё и потому, что заранее имена констант знать не хочется (так и на ифдефах можно было бы наколбасить без траты байтов и тактов), а хранить строки просто негде. Лепить пре-пре-процессор, который будет сложнее собственно программки тоже, наверное, не хочется. |
Скрыть
Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?Бля, макросов получилось больше чем кода.. Это заёбывает.. |
Скрыть
Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?>юз лисп сцуко
|
Скрыть
Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?В качестве пре-пре-процессора..
|
|
|
|
Этот тред читают 3 пользователя: |
Анонимных: 3 Зарегистрированных: 0 |
Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?
Функции которые со всем этим работают выглядят так: \code{
#define output_init(name) C_##name##_DDR |= (1