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

 
 
> Условное выражение внутри #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
Ответов
MrYuran
сообщение Mar 21 2012, 11:17
Сообщение #2


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

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



Цитата(ViKo @ Mar 21 2012, 15:15) *
Есть ли возможность в C сделать что-то подобное:
Код
#define TEST(A,B,MULT)    \
    A = B<<(#if (#MULT == "ONE") 1    \
            #elif (#MULT == "TWO") 2);

Можно.
Через составные макросы и конкатенацию ##
Код
#define TEST(A,B,MULT)    TEST##MULT(A,B)
#define TESTONE(A,B)
#define TESTTWO(A,B)


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



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

 


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


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