На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 99 100 [101] 102 103 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата --Ins-- @
    Не понял мысль, перефразируй

    Я неправильно прочитал.
    Результат здесь будет 600.
      Цитата MyNameIsIgor @
      Результат здесь будет 600.


      Отлично. Т.е. здесь byte к int-у неявно преобразуется?
        Цитата --Ins-- @
        Еще объясни почему сход неожиданный, если у нас в выражении явно используются вещественные?
        Я ж даже попробовал ликбезом объяснить. Потому что в отличие от математики операция / в C определена для целых всегда, и было бы странным применить для неё promotion отличным от других случаев способом. Дело не в типе результата выражения, оно определяется другими методами, дело в типах операндов в операции, а они оба целые. А с математической точки зрения MyNameIsIgor прав, результатом / тогда уж должно быть бы быть рациональное, а не действительное.
        Использование специального значка для той же операции мы уже проходили когда-то. Это нафиг рушит обощённость. Если б ваша / для целых давала бы ошибку компиляции, вашим дженерикам тоже пришлось бы несладко.
          Цитата Qraizer @
          Это нафиг рушит обощённость.


          Оно и так ее нафиг рушит, и я тоже приводил пример
            Цитата MyNameIsIgor @
            Я неправильно прочитал.
            Результат здесь будет 600.
            Странно. А на С++ будет 344.
              Цитата --Ins-- @
              Отлично. Т.е. здесь byte к int-у неявно преобразуется?

              А у вас нет? TurboPascal 7.0 говорит тоже 600
                Цитата Qraizer @
                А у вас нет? TurboPascal 7.0 говорит тоже 600


                Ну да, поведение такое же как и для предыдущего примера. А в с# в первом примере так (не приводим тип к float), а во втором - эдак (приводим тип к int) ;)
                  Повстанець, ты не прав.
                    Цитата Повстанець @
                    А на С++ будет 344.


                    :D О, значит и сишникам что-то объяснять тоже нужно будет при переходе на c#, не только "математикам" :D А вы говорите...
                      Цитата --Ins-- @
                      Ну да, поведение такое же как и для предыдущего примера.
                      так что, при
                      var
                      a, b, c : byte;

                      c := a + b;

                      выдаёт ошибку?
                        Цитата Qraizer @
                        Повстанець, ты не прав


                        Ладно, тогда предыдущий пост забираю назад, если вы сами еще не определились
                          Цитата --Ins-- @
                          Т.е. здесь byte к int-у неявно преобразуется?
                          Только не проебразуется, а r-value типа char "продвигается" к int.

                          Добавлено
                          Так, ладно. Пошёл-ка я Mass Effect 2 запущу.
                            Цитата Qraizer @
                            Повстанець, ты не прав.
                            Мамой клянусь, что 344. Проверил на вижуле и gcc.
                              Цитата Повстанець @
                              выдаёт ошибку?


                              Это от директив компилятора зависит. Если переполнение запрещено, то при переполнении в рантайм будет ошибка. Если нет - то не будет. По умолчанию переполнение разрешено. Рекомендуется в отладочных версиях программы включать контроль переполнения для выявления ошибок в коде, а в релизе - убирать.
                              Сообщение отредактировано: --Ins-- -
                                Цитата --Ins-- @
                                MyNameIsIgor, а чем плохо ввести две разных операции для целых: целочисленное деление и нецелочисленное деление? И значки для них разные? Проблем было бы гораздо меньше ;)

                                Каких проблемм ? --Ins--, раскажи мне реальную задачу где в одном выражении можно тупо написать выражение смешанных чисел? Одно время мы с другом писали графический движок, используя ОпенГЛ, друган писал физику, я писал сохранение моделей из 3ДМакс, загрузку их в нашу проггу, плюс наложение текстур, рендеринг модели, вычисление нормалей, ребра отсечений и т.д. и т.п. И то там везде юзались флоаты, а если и были целые, они никак не пересекались с флоатами... Я конечно не исключаю что такие выражения возможны, просто ты так выразился:
                                Цитата --Ins-- @
                                Проблем было бы гораздо меньше ;)

                                Как будто это одно большое страдание. Когда такое действительно бывает, то если ты даже и запарился, то полюбому ты тут же поймешь в чем дело, потому как результаты разные будут, а если тебе влом тестить визуально свою программу, то дальше юнит тестов она не пройдет, я уже молчу о тестерах и т.д. О каких съехавших с рельс поездах ты говорил, я даже понятия не могу представить... Или у вас в делфи не практикуется Юнит тестирование ? И тестирование программ вообще?
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 99 100 [101] 102 103 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.2001 ]   [ 14 queries used ]   [ Generated: 30.07.26, 09:06 GMT ]