Russian Qt Forum
Ноябрь 22, 2024, 12:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3 ... 5   Вниз
  Печать  
Автор Тема: Старая шутка  (Прочитано 40196 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Февраль 16, 2017, 15:57 »

Давеча увидел в разбираемых исходниках
Код
C++ (Qt)
if (!(w >= 0))
 w = 0;
 
И чего он это так написал  Непонимающий  Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 16, 2017, 16:18 »

Ох, сколько у меня тут такого говнокода в похапэ. Ну, нравится так человеку писать. Но было еще хуже:

Код
PHP
if (!$w >= 0)
 

Человек был уверен, что он отрицает сравнение.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Февраль 16, 2017, 16:19 »

Давеча увидел в разбираемых исходниках
Код
C++ (Qt)
if (!(w >= 0))
 w = 0;
 
И чего он это так написал  Непонимающий  Улыбающийся

похоже, при отрицательном значении хотел обнулять Улыбающийся
но выглядит конструкция пипец как странно, аж мозг выворачивает этой логикой Веселый
Записан

ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #3 : Февраль 16, 2017, 16:40 »

Возможно тип w определяется в шаблоне или define каким, и может быть как signed так и unsigned. И чтобы компилятор не сыпал предупреждения о сравнении беззнакового типа со знаковым так и написали. Хотя "Никогда не приписывайте злому умыслу то, что вполне можно объяснить глупостью."  Веселый.
Записан

Пока сам не сделаешь...
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Февраль 16, 2017, 16:56 »

Ох, сколько у меня тут такого говнокода в похапэ. Ну, нравится так человеку писать.
Нет, смысл в написанном есть, поэтому и выглядит так странно.

Ну и конечно же, все это "знали", "читали" (так будут уверять когда ответ известен)  Улыбающийся
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #5 : Февраль 16, 2017, 17:21 »

Ну и конечно же, все это "знали", "читали" (так будут уверять когда ответ известен)  Улыбающийся

Тогда сначала напишите какого типа эта w Улыбающийся.
Записан

Пока сам не сделаешь...
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Февраль 16, 2017, 18:30 »

у этого типа перегружен оператор >=, но не < ?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #7 : Февраль 16, 2017, 18:36 »

какая разница, какой тип...
говнокод он и есть говнокод)
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Февраль 17, 2017, 12:02 »

Тогда сначала напишите какого типа эта w Улыбающийся.
Может еще мамину сисю?  Улыбающийся
у этого типа перегружен оператор >=, но не < ?
Нет никаких перегрузок
какая разница, какой тип...
говнокод он и есть говнокод)
Ну а почему все что непривычно - так сразу и говнокод? Улыбающийся Это выражение не тождественно такому
Код
C++ (Qt)
if (w < 0)
w = 0;
 
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Февраль 17, 2017, 12:09 »

Igors, мы тут находимся не твои загадки разгадывать. Если есть что сказать, говори. Если потроллить пришел, то тему я удалю.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Февраль 17, 2017, 12:34 »

Igors, мы тут находимся не твои загадки разгадывать.
Ну если Вы здесь заняты чем-то куда более важным (уж не знаю чем) - то я Вас в тему на аркане не тянул. Как тут один говорил
Цитировать
не нравится - проходи мимо

Если есть что сказать, говори. Если потроллить пришел, то тему я удалю.
Та где ж Вы тут троллинг узрели? Простой вопросик по арифметике, чисто изучение языка
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #11 : Февраль 17, 2017, 12:36 »

Ну а почему все что непривычно - так сразу и говнокод? Улыбающийся Это выражение не тождественно такому
Код
C++ (Qt)
if (w < 0)
w = 0;
 

Даже для типа int не тождественно?
Записан

Пока сам не сделаешь...
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #12 : Февраль 17, 2017, 13:40 »

Даже для типа int не тождественно?
В общем случае не тождественно, т.е. существуют типы (в самом языке, не пользовательские) когда де Морган отдыхает  Улыбающийся
 
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #13 : Февраль 17, 2017, 13:54 »

В общем случае не тождественно, т.е. существуют типы (в самом языке, не пользовательские) когда де Морган отдыхает  Улыбающийся

Я про общий целочисленный тип и не говорил. Для конкретного типа int С++ не тождественно? Или теперь загадку надо переформулировать так: "При каком типе w приведённый фрагмент не является говнокодом?" Улыбающийся.
Записан

Пока сам не сделаешь...
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #14 : Февраль 17, 2017, 14:27 »

Или теперь загадку надо переформулировать так: "При каком типе w приведённый фрагмент не является говнокодом?" Улыбающийся.
По-моему, ответ уже был дан:
у этого типа перегружен оператор >=, но не < ?
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [1] 2 3 ... 5   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.136 секунд. Запросов: 23.