Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2011, 11:03   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию что делают функции

Добрый день, смотрю исходники одно программы, и нашел в них следующее:
Код:
#define compLT(a,b) (a < b)
#define compEQ(a,b) (a == b)
что это делает?
Код:
    while (current != NIL) {
        if (compEQ(data, current->data)) return (current);
        parent = current;
        current = compLT(data, current->data) ?  
            current->left : current->right;
    }
и в данном случае что произойдет? просто извините не нашел)
CodeNOT вне форума Ответить с цитированием
Старый 19.05.2011, 11:08   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
#define compLT(a,b) (a < b)
#define compEQ(a,b) (a == b)
Булевые функции, возвращают true в случае выполнения условий.

Код:
current = compLT(data, current->data) ?  
            current->left : current->right;
Тернарный оператор.

ЗЫ что-то я не помню NIL в C/C++. Может быть, NULL?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 19.05.2011, 11:14   #3
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

в исходнике они такое используют такое:
Код:
#define NIL &sentinel
CodeNOT вне форума Ответить с цитированием
Старый 19.05.2011, 11:19   #4
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

хм, и да не знал про тренарный оператор, т.е. это фактически логическое выражение к зависимости от которого будет выполнять та или иная операция например?
и я понимаю его можно описывать и так:
Код:
int lol;
int first_,last_
cin>>first_;
cin>>last_;
lol=if(first_ > last_)?first_:last_;
я нигде не ошибся?
CodeNOT вне форума Ответить с цитированием
Старый 19.05.2011, 13:44   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

if - не нужно
p51x вне форума Ответить с цитированием
Старый 19.05.2011, 15:24   #6
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

Спасибо большое)
CodeNOT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из чего делают просмотровщики картинок? AnTe Мультимедиа в Delphi 12 07.07.2010 14:47
Обьясните что делают и означают пару строк в программном коде! FreeZeT Общие вопросы C/C++ 2 15.06.2010 03:20
Как делают микросхемы? Rembo Компьютерное железо 15 17.09.2009 18:44
Как делают симпатичный buttons на Ассемблере??? Hi-hi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 05.07.2009 00:42
Как делают уникальный идентификатор строки в БД? sergey113 Помощь студентам 3 05.08.2008 17:48