Перейти к содержанию
    

Откель такие приоритеты операций в Си?

2 minutes ago, jcxz said:

Вы ненавистник и вас увольняют?

Нет, я скобочки люблю. :yes3: Особенно там где они  помогают читать код и легко понимать логику разработчика.   

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

50 минут назад, one_eight_seven сказал:

Переформулируйте. Вообще непонятно, что вы сказать хотели.

Я говорю о том, что в выражении 

a & mask == 0

Возможен только единственный разумный порядок операций. Вот такой порядок:

a & (mask == 0) 

является как по мне бредом

А если маска  mask еще и не нулевая константа, компилятор его молча из кода выбросит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, artemkad said:

Возможен только единственный разумный порядок операций.

Если вы чего-то не понимаете, это не значит, что это невозможно. А если это важно только в младшем бите, при этом, любой из старших должен запустить ветку else?

 

2 hours ago, artemkad said:

является как по мне бредом

Вы в мире не один. Более того, вы не один даже в команде разработчиков, если хотя бы более-менее большой проект.

3 hours ago, jcxz said:

Или надсмотрщиком над рабами на галере?

Если разработчик не может работать в команде и принять её правила, пусть поищет применение своему говнокоду в другом месте, зачем мучаться? Причём, и ему, и людям.

6 minutes ago, one_eight_seven said:

Если вы чего-то не понимаете, это не значит, что это невозможно. А если это важно только в младшем бите, при этом, любой из старших должен запустить ветку else?

Естественно, с операцией '&' это невозможно, но есть '^' (тоже побитовая).

Но историческую суть я выше изложил. В тот исторический момент добавили логические операции ||, &&, но в языках, применявшихся до этого, не было таких операций, а были операции &, |, и их прецедентность оставили прежней. Никто бы не пострадал, если бы приоритет побитовых операций был выше, чем операций сравнения. Но историческая ситуация пятьдесят лет назад была другой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, artemkad сказал:

примеру чему равно 


3 == 3

?

Очевидно, 1. А что, есть сомнения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Непонятно зачем заморачиваться с приоритетами, поставил скобки - и все дела, чтобы потом на ровном месте ошибки не ловить!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, andrew_b сказал:

А что, есть сомнения?

Почему именно 1? Почему не -1 или любое иное целое, отличное от 0. И какое именно целое - знаковое или беззнаковое? А какой разрядности: char, short, int, long?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, Darth Vader сказал:

Почему именно 1? Почему не -1 или любое иное целое, отличное от 0. И какое именно целое - знаковое или беззнаковое? А какой разрядности: char, short, int, long?

В Стандарте написано, потому что. Как и, впрочем, ответы на все последующие вопросы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, Darth Vader сказал:

Почему

Вам уже ответили.

Как когда-то говорили в этих ваших интернетах: «читайте доки, они рулез».

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 часов назад, RobFPGA сказал:

Особенно там где они  помогают читать код и легко понимать логику разработчика.   

Согласен полностью. Если там не выражение с полкилометра, то скобки не режут глаза, но все сразу понятно, если очень много условий и параметров, тогда стараюсь штабелями их не класть))) Причем в нормальных ИДЕ, не таких убогих, как визуалстудия, например, парные открывающая и закрывающая скобки подсвечиваются для удобства.

5 часов назад, MrGalaxy сказал:

Непонятно зачем заморачиваться с приоритетами, поставил скобки - и все дела

Ну показать свою круть может быть))))))) Ну или если без смеха, то например, такой код менее понятен для неопытных, следовательно набиваешь себе цену...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, mantech сказал:

Ну или если без смеха, то например, такой код менее понятен для неопытных, следовательно набиваешь себе цену...

Дело не в опытности/неопытности, набивке цены и т.д. Если скобки действительно будут способствовать лишь улучшению понимания кода, то ок. Но если, как дядя выше, начальник будет заставлять своих сотрудников ставить скобки везде, то они под страхом увольнения начнут страдать полной х*рней типа

if(((a - b) < 10) || ((b & 0xF) >= (a - 1)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

42 минуты назад, Arlleex сказал:

начнут страдать полной х*рней типа

Ну, всего-то по 3 скобочки... Я тут в каком-то исходнике и 5 видел)))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Arlleex сказал:

Но если, как дядя выше, начальник будет заставлять своих сотрудников ставить скобки везде, то они под страхом увольнения начнут страдать полной х*рней типа

Видимо сам этот дядя путается в приоритетах операций и, чтобы не сесть в лужу перед подчинёнными, придумал байку про "скобки всегда повышают читаемость". :biggrin:

И продвигает её при помощи административного ресурса.

 

PS: Почему-то в школе все писали y=a*b+c и не затевали истерики с требованием писать y=((a*b)+c).

....или, давно не был в школе - в нонешние, ковидно- ЕГЭ-шные времена, уже и в школе требуют всё оскобочивать??? :umnik2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, jcxz said:

Видимо сам этот дядя путается в приоритетах операций и, чтобы не сесть в лужу перед подчинёнными, придумал байку про "скобки всегда повышают читаемость". :biggrin:

И продвигает её при помощи административного ресурса.

Читаемость кода повышает много чего, чему в школе увы не учат. И к сожалению часто не учат даже в вузах. И скобки, и правильное и единообразное форматирование, и отступы и пробелы разделяющие группы операций, и комменты посложнее чем "Тут был Вася", ... 
Ну а дядя который несет ответственность (платит зарплату) в праве требовать от своих работников чтобы те свои каракули оформляли в соответствии с его пожеланиями. Для этого у него есть и соответствующие инструменты (linter-ы) и административный ресурс.   Но этому похоже тоже не учат ни в школе  ни в в вузах  :cray:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15.01.2022 в 14:29, Arlleex сказал:

Но если, как дядя выше, нато они под страхом увольнения начнут страдать полной х*рней типа


if(((a - b) < 10) || ((b & 0xF) >= (a - 1)))

Ну, работать всё-равно остаются те, кто способен понять: "если со скобками работает правильно, а без скобок - ошибки, то лучше Я сам буду ставить скобки всегда",- и это не под страхом увольнения.

Кроме того, если из этого кода убрать скобки, он не перестанет быть хернёй, а вот работать будет уже по-другому. И то, что вы этого не видите - это печально. Вы прямо как Мамаду и Таня - Азов не знаете, при всём своём опыте.

 

Ну и та [censored], которую вы написали может быть сделана более читаемой таким непостижимым для вас инструментом, как форматирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15.01.2022 в 13:50, mantech сказал:

Причем в нормальных ИДЕ, не таких убогих, как визуалстудия, например, парные открывающая и закрывающая скобки подсвечиваются для удобства.

Приведите пример нормальных, очень интересно.

15.01.2022 в 14:29, Arlleex сказал:

о они под страхом увольнения начнут страдать полной х*рней типа


if(((a - b) < 10) || ((b & 0xF) >= (a - 1)))

И что здесь ужасного? И выражайтесь, пожалуйста, без этих "звёздочек". Это предупреждение.

 

15.01.2022 в 16:11, jcxz сказал:

PS: Почему-то в школе все писали y=a*b+c и не затевали истерики с требованием писать y=((a*b)+c).

....или, давно не был в школе - в нонешние, ковидно- ЕГЭ-шные времена, уже и в школе требуют всё оскобочивать???

Не показательный пример. Посмотрите лучше вот такой вариант.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...