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

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


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Вроде бы нет.
Задача не до конца понятна, возможно тут нужен не препроцессор?
CODE
typedef enum
{
    ZERO,
    ONE,
    TWO
} mult_t;

inline int TEST(int b, mult_t mult) { return b << mult; }
С остальным справится оптимизатор.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:48
Рейтинг@Mail.ru


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