AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.04.2009, 13:04   #14  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
Цитата:
Сообщение от cerbo Посмотреть сообщение
t= d == (5 || 10); // false
t= d == (5 && 10); // false
d= t; // 0

К стати первая строчка могла бы стать элегантной заменой этому:
X++:
    t= (d == 5 || d == 10); // true
Это совсем не одно и тоже:

t= d == (5 || 10); // false
Если учесть преобразования boolean в int, 5 = 0101 а 10 = 1010. Соответственно сложив младшие биты получим 1 - значение в скобках будет true, далее сравниеваем этот 1 (приведенный из true в int) с 10 и получаем конечно же false

во втором варианте происходит сравнение 2-х чисел int - конечно тут будет true, поскольку d == 10.

Важно что выражение в скобках вернет приведенный к boolean результат!
Если бы было так:
X++:
int c = 5 | 10;
тогда бы с было равно 15 - результат сразу идет в int.
И в С++ тоже так!
__________________
http://www.axdevposts.blogspot.com
Пришел, уведел.... отойди, дай другому увидеть!
Теги
неявное преобразование

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Будьте осторожны с RecordInsertList miklenew DAX: Программирование 6 20.05.2008 15:39
баг в 2.5. Будьте осторожнее с символом "_" подчеркивание levsha DAX: Программирование 5 07.12.2004 12:26
Заказы-склад комплектация AK-76 DAX: Функционал 2 05.11.2003 10:37
И еще раз о слоях PlasticinE DAX: Программирование 2 22.01.2002 22:44

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:57.