zHz00 Untitled

воскресенье, 09 декабря 2018
23:59 Приоритет ?:
Несмотря на то, что я повесил на стенку на рабочем месте таблицу с приоритетами операций в Си/Си++, всё равно иногда напарываюсь.

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

Вот, например, вместо:

if(a>3) a++; else a--;

можно написать:

a+=a>3?1:-1;

Не всем кажется, что второй вариант понятен, но я не про это.

Приоритет этой операции один из самых низких. Он такой же, как у присваивания, поэтому в данном случае всё правильно работает только за счёт того, что ассоциативность у присваивания -- справа налево (за счёт этого работают штуки вроде a=b=c=0;). То есть, ?: вычисляется раньше, чем присваивание.

Но могут быть и более сложные случаи, например:

a=x*invert?1:-1;

Тут ошибка. Сначала икс умножится на инверт, в то время как задумка была в том, чтобы a получила значение либо x, либо -x. Вот на этом-то я и накололся.

Поэтому ?: надо всегда заключать в скобки:

a=x*(invert?1:-1);

@темы: Программирование, Фейлы

URL
Корейские чаты - загадочное и непонятное место, лишний ра...
Сейчас всем офисом смотрели мультики из NeverHood'a... ...
http://www.sanytch.com/temp/myxa.html Гы-ы-ы... :D
Прислала девушка(имя и прочее осталось неизвестным) прочи...
Капал расплавленным целлофаном в муравейник. Смешно. Посл...
С утра занимался описанием природы. Особенно понравилось ...

10.12.2018 в 08:25

10.12.2018 в 08:25
Не всем кажется, что второй вариант понятен
Я бы сказал, что он вообще не понятен.
Кстати, все пытаюсь перейти на VSCode вместо штатного Powershell ISE. Получается пока медленно. Так вот - так же медленно VSC заставляет меня отвыкать от сокращенных форм записи командлетов (нервно реагирует даже на select вместо select-object, а уж про % вместо foreach вообще молчу). Аргументирует тем, что читабельность кода падает. И я начинаю с ним соглашаться.
URL

10.12.2018 в 09:17

10.12.2018 в 09:17
Нет ли в нашем мире (в поведении людей, в функционировании общества, экономики, исторических событий, чего угодно) признаков работы программы (программ)?
URL

10.12.2018 в 13:21

10.12.2018 в 13:21
Hikedaya,
>>Я бы сказал, что он вообще не понятен.

Вот. Возможно, это сила привычки, когда такие выражения выцепляются взглядом и понимаются отдельно.

>>VSC заставляет меня отвыкать от сокращенных форм записи командлетов (нервно реагирует даже на select вместо select-object, а уж про % вместо foreach вообще молчу). Аргументирует тем, что читабельность кода падает. И я начинаю с ним соглашаться.

Типичная дилемма удобство вс. безопасность или удобство написания вс. удобство чтения. Я тут интересовался языком Rust. Он позиционируется как замена Си с улучшенной читаемостью и безопасностью. Достигается это различными запретами времени компиляции. Привыкшие по Си совершать какое-нибудь неявное преобразование типов, будут спотыкаться -- их просто дальше не пустят.

>>Нет ли в нашем мире (в поведении людей, в функционировании общества, экономики, исторических событий, чего угодно) признаков работы программы (программ)?

Вы про то, не живём ли мы в матрице? Есть аргументы в пользу этого, но, на мой взгляд, довольно слабые. Ознакомиться с ними можно тут:
www.youtube.com/watch?v=SnQkTfSpfOU

Если вы про что-то другое, то поясните, о чём вы.
URL

10.12.2018 в 13:43

10.12.2018 в 13:43
zHz00, отключи графические смайлы к посте.
URL

10.12.2018 в 13:52

10.12.2018 в 13:52
RetXiRT suiR@ttig@$, есть!
URL

10.12.2018 в 21:04

10.12.2018 в 21:04
zHz00, Привыкшие по Си совершать какое-нибудь неявное преобразование типов
А такие еще есть?
URL

10.12.2018 в 21:08

10.12.2018 в 21:08
Hikedaya, конечно. Я каждый день в зеркало смотрюсь вот. Есть.
URL

10.12.2018 в 21:25

10.12.2018 в 21:25
зХз каждый день смотрелся в зеркало, чтобы заметить неявные преобразования, типа. Но так и не заметил. Потому что они неявные.
URL

10.12.2018 в 22:11

10.12.2018 в 22:11
RetXiRT suiR@ttig@$, ))). Они такие неявные, потому что медленные.
URL

10.12.2018 в 23:55

10.12.2018 в 23:55
Как черепаха?
URL

11.12.2018 в 01:10

11.12.2018 в 01:10
RetXiRT suiR@ttig@$, ещё медленнее.
URL

11.12.2018 в 01:11

11.12.2018 в 01:11
-- На чём стоит земля?
-- На трёх слонах.
-- А те?
-- На трёх китах.
-- А те?
-- На огромной черепахе.
-- А черепаха эта на чём стоит?
-- На ещё большей черепахе.
-- А она на чём?
-- А там дальше -- сплошные черепахи.
URL

11.12.2018 в 09:57

11.12.2018 в 09:57
Фрактал наоборот?
URL
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии