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

 
 
> Условное выражение внутри #define
ViKo
сообщение Mar 21 2012, 11:15
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Есть ли возможность в C сделать что-то подобное:
Код
#define TEST(A,B,MULT)    \
    A = B<<(#if (#MULT == "ONE") 1    \
            #elif (#MULT == "TWO") 2);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Mar 21 2012, 11:34
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Задачка упрощена, конечно. Хотелось для конфигурации портов STM32L151 написать универсальное макро для всех регистров. А их там много. В некоторых для задания режима одного бита порта требуется один бит в регистре, в большинстве - 2, для альтернативных функций - 4. Думаю, как бы по имени регистра задать нужное количество сдвигов.
Может, и зря. Хочу понять, можно ли. Надо попробовать решение MrYuran.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 21 2012, 11:37
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(ViKo @ Mar 21 2012, 15:34) *
Надо попробовать решение MrYuran.

Это не моё, а Аскольда Волкова sm.gif


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 20:42
Рейтинг@Mail.ru


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