if(m_EnableCheck == true)
От: ZooN Казахстан  
Дата: 29.07.03 04:36
Оценка:
почему при такой записи
if(m_EnableCheck == true)
компилятор выдает warning,
а при такой
if(m_EnableCheck == TRUE)
все ОК.
в чем разница и что лучше?
ZooN
Re: if(m_EnableCheck == true)
От: adb Россия  
Дата: 29.07.03 04:50
Оценка:
Здравствуйте, ZooN, Вы писали:

ZN>почему при такой записи

ZN> if(m_EnableCheck == true)
ZN>компилятор выдает warning,
ZN>а при такой
ZN> if(m_EnableCheck == TRUE)
ZN>все ОК.
ZN>в чем разница и что лучше?

Потому что BOOL & bool совершенно разные вещи. BOOL — это обычный long. А bool — это встроенный тип.
Re: if(m_EnableCheck == true)
От: Calc Россия  
Дата: 29.07.03 04:53
Оценка:
Здравствуйте, ZooN, Вы писали:

ZN>почему при такой записи

ZN> if(m_EnableCheck == true)
ZN>компилятор выдает warning,
ZN>а при такой
ZN> if(m_EnableCheck == TRUE)
ZN>все ОК.
ZN>в чем разница и что лучше?

У m_EnableCheck тип не bool, а BOOL
Это разные вещи
елси не ошибаюсь, то bool это: enum(false,true), а BOOL в каком-то роде int
Re: if(m_EnableCheck == true)
От: Аноним  
Дата: 29.07.03 05:10
Оценка: +1 -1
ZN>почему при такой записи
ZN> if(m_EnableCheck == true)
ZN>компилятор выдает warning,
ZN>а при такой
ZN> if(m_EnableCheck == TRUE)
ZN>все ОК.
ZN>в чем разница и что лучше?

Всегда лучше писать так:
if(m_EnableCheck)

а если проверяешь на false то так:
if(!m_EnableCheck)

Вопрос же твой свидетельствует о том, что тебе не повредит выполнить десяток упражнений на работу с логическими переменными.
Re: if(m_EnableCheck == true)
От: Jenyay http://jenyay.net
Дата: 29.07.03 05:10
Оценка: +1
Здравствуйте, ZooN, Вы писали:

ZN>почему при такой записи

ZN> if(m_EnableCheck == true)
ZN>компилятор выдает warning,
ZN>а при такой
ZN> if(m_EnableCheck == TRUE)
ZN>все ОК.
ZN>в чем разница и что лучше?

И еще, имхо, красивее писать просто
if (m_EnableCheck)
... << RSDN@Home 1.1 beta 1 >>
Софт, исходники и фото
Re[2]: if(m_EnableCheck == true)
От: Bell Россия  
Дата: 29.07.03 06:00
Оценка:
Здравствуйте, Calc, Вы писали:

...

C>елси не ошибаюсь, то bool это: enum(false,true), а BOOL в каком-то роде int


Ошибаешься
BOOL — это не что иное как
typedef int                 BOOL;

А TRUE и FALSE определены так:

#ifndef FALSE
#define FALSE               0
#endif

#ifndef TRUE
#define TRUE                1
#endif


Все это добро находится в Windef.h (по крайней мере для шестой студии это так)

bool — это встроенный тип С++, а никакой не enum.
Любите книгу — источник знаний (с) М.Горький
Re[3]: if(m_EnableCheck == true)
От: Calc Россия  
Дата: 29.07.03 06:28
Оценка:
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, Calc, Вы писали:


B>...


C>>елси не ошибаюсь, то bool это: enum(false,true), а BOOL в каком-то роде int


B>Ошибаешься

Поправьте меня если я не так думаю:
B>BOOL — это не что иное как
B>
B>typedef int                 BOOL;
B>


А typedef только даёт новое имя существующему типу, так что я тут не ошибся!

B>bool — это встроенный тип С++, а никакой не enum.

Ну насчёт этого мог и ошибиться.
Re[4]: if(m_EnableCheck == true)
От: Bell Россия  
Дата: 29.07.03 06:37
Оценка:
Здравствуйте, Calc, Вы писали:

C>Поправьте меня если я не так думаю:

...
C>А typedef только даёт новое имя существующему типу, так что я тут не ошибся!
ИМХО фразы "BOOL в каком-то роде int" и "BOOL — это синоним int" все-таки различаются.


B>>bool — это встроенный тип С++, а никакой не enum.

C>Ну насчёт этого мог и ошибиться.
Почему мог?
Любите книгу — источник знаний (с) М.Горький
Re[5]: if(m_EnableCheck == true)
От: Calc Россия  
Дата: 29.07.03 06:54
Оценка:
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, Calc, Вы писали:


C>>Поправьте меня если я не так думаю:

B>...
C>>А typedef только даёт новое имя существующему типу, так что я тут не ошибся!
B>ИМХО фразы "BOOL в каком-то роде int" и "BOOL — это синоним int" все-таки различаются.


B>>>bool — это встроенный тип С++, а никакой не enum.

C>>Ну насчёт этого мог и ошибиться.
B>Почему мог?

А это уже Русский язык

Мог, потому что в прошедшем времени, теперь не ошибусь

Но подобную конструкцию я всё же где то встречал, но где
Re[6]: if(m_EnableCheck == true)
От: Bell Россия  
Дата: 29.07.03 07:04
Оценка:
Здравствуйте, Calc, Вы писали:


C>Но подобную конструкцию я всё же где то встречал, но где


Ну это просто один из вариантов эмуляции bool. Встречается например у Саттера в "Exceptional C++"
Любите книгу — источник знаний (с) М.Горький
Re[3]: if(m_EnableCheck == true)
От: Calc Россия  
Дата: 09.08.03 13:11
Оценка:
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, Calc, Вы писали:


B>...


B>bool — это встроенный тип С++, а никакой не enum.


Ну это я просто малость ошибся
Пример с enum приводится в книге Гради Буча, вот выцепил нечаянно.
Re: if(m_EnableCheck == true)
От: Octane Россия  
Дата: 09.08.03 13:54
Оценка:
Здравствуйте, ZooN, Вы писали:

ZN>почему при такой записи

ZN> if(m_EnableCheck == true)
ZN>компилятор выдает warning,
ZN>а при такой
ZN> if(m_EnableCheck == TRUE)
ZN>все ОК.
ZN>в чем разница и что лучше?

пиши всегда
if(((((((m_EnableCheck==TRUE)==true)==true)==true)==true)==true))

и не парься
Re[3]: if(m_EnableCheck == true)
От: maloyDS Россия  
Дата: 09.08.03 16:07
Оценка:
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, Calc, Вы писали:


B>...


C>>елси не ошибаюсь, то bool это: enum(false,true), а BOOL в каком-то роде int


B>Ошибаешься

B>BOOL — это не что иное как
B>
B>typedef int                 BOOL;
B>

B>А TRUE и FALSE определены так:

B>
B>#ifndef FALSE
B>#define FALSE               0
B>#endif

B>#ifndef TRUE
B>#define TRUE                1
B>#endif
B>

А вообще нашиша это надо? В смысле вводить BOOL, когда был bool
... << RSDN@Home 1.1 beta 1 >>
Re[4]: if(m_EnableCheck == true)
От: Shuriki Украина  
Дата: 11.08.03 07:43
Оценка:
Здравствуйте, maloyDS, Вы писали:


DS>А вообще нашиша это надо? В смысле вводить BOOL, когда был bool


как-то столкнулся в VC6, напр.

    bool b;
    b = 0.0;


и понял, bool уже не совсем хорошо в 6-ом.
Re[4]: if(m_EnableCheck == true)
От: Calc Россия  
Дата: 11.08.03 09:16
Оценка:
Здравствуйте, maloyDS, Вы писали:

DS>А вообще нашиша это надо? В смысле вводить BOOL, когда был bool

Иногда функции винды в случае успеха возвращают не 0.
А в случае неудачи возвращают 0.
Вот:
BOOL bResult = ... // наша функция

Так как bool встроенный тип, то его не используют по тому, что Win Api можно использовать на многих языках и в них может не оказаться bool
(всё это IMHO)
Re[5]: if(m_EnableCheck == true)
От: maloyDS Россия  
Дата: 11.08.03 10:22
Оценка:
Здравствуйте, Shuriki, Вы писали:

S>Здравствуйте, maloyDS, Вы писали:



DS>>А вообще нашиша это надо? В смысле вводить BOOL, когда был bool


S>как-то столкнулся в VC6, напр.


S>
S>    bool b;
S>    b = 0.0;
S>


S>и понял, bool уже не совсем хорошо в 6-ом.


А BOOL себя как ведёт в данном случае?
... << RSDN@Home 1.1 beta 1 >>
Re[6]: if(m_EnableCheck == true)
От: Calc Россия  
Дата: 11.08.03 10:42
Оценка:
Здравствуйте, maloyDS, Вы писали:

DS>А BOOL себя как ведёт в данном случае?

По идее идёт преобразование типов
Re[7]: if(m_EnableCheck == true)
От: Shuriki Украина  
Дата: 12.08.03 08:14
Оценка:
C>Здравствуйте, maloyDS, Вы писали:

DS>>А BOOL себя как ведёт в данном случае?

C>По идее идёт преобразование типов

const double to int
Re[8]: if(m_EnableCheck == true)
От: Lorenzo_LAMAS  
Дата: 12.08.03 08:17
Оценка:
S>const double to int

просто double to int
Of course, the code must be complete enough to compile and link.
Re[5]: if(m_EnableCheck == true)
От: Аноним  
Дата: 13.08.03 07:27
Оценка:
Здравствуйте, Calc, Вы писали:

C>Здравствуйте, maloyDS, Вы писали:


DS>>А вообще нашиша это надо? В смысле вводить BOOL, когда был bool

C>Иногда функции винды в случае успеха возвращают не 0.
C>А в случае неудачи возвращают 0.
C>Вот:
C>
C>BOOL bResult = ... // наша функция
C>

C>Так как bool встроенный тип, то его не используют по тому, что Win Api можно использовать на многих языках и в них может не оказаться bool
C>(всё это IMHO)

А я думаю что bool не использовался из за того что его не было в C, да и в C++ он появился сравнительно недавно. Хотя насчет C++ может я и ошибаюсь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.