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

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

3 часа назад, Herz сказал:

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

Меня пока ИАРовский редактор вполне устраивает.

3 часа назад, Herz сказал:

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

Да, вспомнил эту математику)))

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


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

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

Меня пока ИАРовский редактор вполне устраивает.

ОК, спасибо. А то я думал, что в VS - хороший редактор.

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


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

23 часа назад, tgruzd сказал:

У меня скорее всего VS неправильная, но парные скобочки подсвечивает как-то: 

А некоторые редакторы (привет, vscode) с недавних пор выделяют парные скобки цветом и без установки на них курсора.Side by side comparison with bracket pair colorization on and off

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


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

1 минуту назад, sorok-odin сказал:

скобки цветом

уух! В следующей обнове ждём полноценных эмодзи :yes:

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


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

3 минуты назад, tgruzd сказал:

уух! В следующей обнове ждём полноценных эмодзи :yes:

дада, "все чужие дополнения, коих нет у меня = ненужные свистелки".

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


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

Не надо негатива, я просто отметил тенденцию. Пошутил типа. 

Я нормально отношусь к "свистелкам", если создатели ПО оставляют выбор пользователю, применять их или нет. Если лично вам они помогают - супер! Предпочитаете без них - отлично!

Лично я не согласен на полумеры и жду нормальных эмодзей)    

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


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

21 минуту назад, sorok-odin сказал:

с недавних пор выделяют парные скобки цветом и без установки на них курсора.

Очень неплохо выглядит. Думаю, и жизнь облегчает.

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


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

On 1/21/2022 at 8:59 PM, sorok-odin said:

А некоторые редакторы (привет, vscode) с недавних пор выделяют парные скобки цветом и без установки на них курсора.

Все, кто жалуется на излишние скобки в С просто не понимают своего счастья. В одной статье по поводу использования IDE (в смысле нужен vs не нужен - все true программисты пишут в блокноте) была фраза

Quote

IDE очень помогают при программировании на Lisp решить "тут достаточно 48 закрывающих скобок, или нужно 49?"

:biggrin:

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


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

14.01.2022 в 22:35, one_eight_seven сказал:

"Как мне узнать, что именно ты тут хотел сделать? Как проверить, ты правильно скобки опустил или ошибочно?"

ППКС. в шк всего 2 приоритета. в си около 17. Все знают что в си у Операторы "&","|" и "^" разный приоритет?: Не заглядывая в справочник расставите приоритеты между ними?

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

Я всегда расставляю приоритеты сам, вручную, скобками. Мне читать такой код понятнее.

14.01.2022 в 23:06, artemkad сказал:

Вы сможете однозначно сказать что является результатом успешного сравнения? К примеру чему равно

1. тип int.

14.01.2022 в 23:06, artemkad сказал:

Я не могу представить разработчика который рискнет выполнять арифметическую или побитную операцию с результатом сравнения.

рассчитываем управление вентиляции по некой формуле, причем, если на улице светло, то добавляем константу

#define ASD 314

p = a*b + c*g + ASD * (getLighting() >  lightingThreshold);

или собираем регистр статуса. в 0-ом бите нужно выставить бит в 1, если температура выше 40

statusReg = a | (temperature > 40);

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

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


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

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

что автор делает: он ошибся в приоритете, или он так и хотел сделать?

Например - автор написал: a+=b;

Как вы определяете: он ошибся и хотел написать a-=b? Или всё-таки a+=b?  А может он вообще имел в виду a|=b ?  :dash2:

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


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

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

Например - автор написал: a+=b;

не нужно путать тёплое с мягким. тут явный оператор "+=". if(a - b < 10 || b & 0xF >= a - 1) - тут неявная "расстановка" приоритетов.

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


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

19 минут назад, razrab83 сказал:

не нужно путать тёплое с мягким. тут явный оператор "+=". if(a - b < 10 || b & 0xF >= a - 1) - тут неявная "расстановка" приоритетов.

Не вижу разницы. Если написано a=b, то следуя вашей логике можно предположить, что писатель просто забыл написать '+', и должно быть: a+=b.

Вы же предполагаете, что там где скобок нет, они должны быть. Здесь то же самое.

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


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

разница в том, что если явно написано "2+2" - это "2+2". Это явная запись "2+2", а не запись "Съешь ещё этих французских булочек".

Хотя, при желании "+" можно перегрузить, и это будет что угодно. Привет индусскому коду, аля typedef true false

а если написано "a | b ^ c & s" - тут неявная расстановка приоритетов, требующая помнить все 17 уровней. В неявных "операциях", гораздо чаще стрельнуть в ногу (отсыл к неявным приведениям типа, которые в с++ не приветствуются). Такой код "(a | (b ^ (c & s)))" даст такой же результат, но тут явно видно приоритеты. Даже если программист забыл, что "&" выше, чем "^", ни чего страшного, со скобками - ни автор, ни читающий не запутаются. 

 

13 минут назад, jcxz сказал:

Вы же предполагаете, что там где скобок нет, они должны быть.

не нужно мне приписывать что-то от себя. я этого не предлагал.

ps

а ещё в шк и вузе, пишут писали z = (a + b) + (x + y). Математически это тоже самое, что и без скобок, но понятнее из чего складывается z, ровно как и понятнее из чего складывается такой if

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

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


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

1 hour ago, razrab83 said:

а ещё в шк и вузе, пишут писали z = (a + b) + (x + y).

а ещё бывает разная "странная" алгебра, например числа с плавающей точкой, где от такой расстановки скобок изменяется результат.

 

 

 

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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