|
|
 |
Ответов
|
Jun 15 2018, 12:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Цитата(k155la3 @ Jun 15 2018, 13:57)  IMHO: Использование постфиксных, и тем более - префиксных ++ в составе выражения ухудшает читабельность кода. Что в данном конкретном примере нечитабельно? Просто и наглядно: если значение в первом массиве меньше, чем соответствующее значение во втором, увеличиваем это значение. Как это можно понять по-другому?! А тема занятная получилась. Выяснилось, что приоритет операций в стандарте C99 явно не описан (наверное, его можно восстановить из форм Бэкуса-Наура, но уж больно лень) и он отличается (!) от приоритетов C++. Хотя, конечно, стандарты C++ писали неглупые люди и про совместимость они подумали. Лично я ни разу не наступил на грабли, пользуясь им в этой части при написании сишного кода.
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Jun 15 2018, 14:11
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(esaulenka @ Jun 15 2018, 15:42)  Что в данном конкретном примере нечитабельно? В данном и конкретном все понятно. (Если речь о том, что в первом посте) Я в смысле применения к выражениям, Цитата a = b++ * 2 + b; на что IAR выдает Цитата Warning[Pa081]: undefined behavior: the order of read and modification of variable "b" (declared 1at line 72) (or a value reached by some form of indirection through it) is undefined in this statement main.c 79 Оттранслировалось ли ЭТО в код не проверял. Может кто более удачный пример "эффективного кода" приведет, не выдающего warning, error, но нечитабельного.
|
|
|
|
|
Jun 15 2018, 20:17
|
Местный
  
Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682

|
Цитата(k155la3 @ Jun 15 2018, 17:11)  В данном и конкретном все понятно. (Если речь о том, что в первом посте)
Может кто более удачный пример "эффективного кода" приведет, не выдающего warning, error, но нечитабельного. Неоднозначность результата компилирования и читабельность кода - суть вещи разные. Приведенный Вами пример (a = b++ * 2 + b;) очень даже читабельный, хотя и неоднозначный.
|
|
|
|
|
Jun 15 2018, 20:21
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(aiwa @ Jun 15 2018, 23:17)  пример (a = b++ * 2 + b;) очень даже читабельный, Неясно, что подразумевается под термином "читабельный": умение читать код или умение понимать прочитанное? Второе подразумевает явное знание работы компилятора и его действий. Если же поведение компилятора в том или ином случае сложно предсказать, то как ни старайся именовать курицу павлином , все равно курицей она так и останется
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
Сообщений в этой теме
Jenya7 Вопрос(ы) по коду Jun 14 2018, 14:12 gosha-z Цитата(Jenya7 @ Jun 14 2018, 17:12) Я тут... Jun 14 2018, 14:14 Jenya7 Цитата(gosha-z @ Jun 14 2018, 19:14)... Jun 14 2018, 14:25  gosha-z Цитата(Jenya7 @ Jun 14 2018, 17:25) я пон... Jun 14 2018, 14:49 Jenya7 еще такой вопрос
в aaa.h файле определено
Код#if... Jun 14 2018, 14:55 gosha-z Цитата(Jenya7 @ Jun 14 2018, 17:55) еще т... Jun 14 2018, 15:00  Jenya7 Цитата(gosha-z @ Jun 14 2018, 20:00)... Jun 14 2018, 15:10   k155la3 Цитата(Jenya7 @ Jun 14 2018, 18:10) а мож... Jun 14 2018, 16:10   aiwa Цитата(Jenya7 @ Jun 14 2018, 18:10) а мож... Jun 15 2018, 09:31 Forger Цитата(Jenya7 @ Jun 14 2018, 17:12) Я тут... Jun 14 2018, 18:11 Jenya7 Цитата(Forger @ Jun 15 2018, 00:11) См. п... Jun 14 2018, 18:21  Forger Цитата(Jenya7 @ Jun 14 2018, 21:21) это н... Jun 14 2018, 18:24 ViKo Цитата(Forger @ Jun 14 2018, 21:11) Это н... Jun 14 2018, 19:05  Forger Цитата(ViKo @ Jun 14 2018, 22:05) Приорит... Jun 14 2018, 19:12   ViKo Цитата(Forger @ Jun 14 2018, 22:12) Значи... Jun 15 2018, 04:52    Forger Цитата(ViKo @ Jun 15 2018, 07:52) Посмотр... Jun 15 2018, 05:01     ViKo Цитата(Forger @ Jun 15 2018, 08:01) Чтобы... Jun 15 2018, 07:15      Forger Цитата(ViKo @ Jun 15 2018, 10:15) Для пос... Jun 15 2018, 09:35      Forger Цитата(ViKo @ Jun 15 2018, 10:15) в станд... Jun 15 2018, 10:16       ViKo Цитата(Forger @ Jun 15 2018, 13:16) Там и... Jun 15 2018, 10:51        Forger Цитата(ViKo @ Jun 15 2018, 13:51) Я по вс... Jun 15 2018, 10:58         ViKo Цитата(Forger @ Jun 15 2018, 13:58) Хотя,... Jun 15 2018, 11:38          Forger Цитата(ViKo @ Jun 15 2018, 14:38) Но я им... Jun 15 2018, 11:52 k155la3 Цитата(Forger @ Jun 14 2018, 21:11) . . .... Jun 15 2018, 07:06 gosha-z Народ, вы чего? Там все однозначно безо всяких тол... Jun 14 2018, 19:36 Forger Цитата(gosha-z @ Jun 14 2018, 22:36)... Jun 14 2018, 19:42 k155la3 ? z1 = ++ms[10] - синтаксис оператора для двух пр... Jun 15 2018, 07:30 ViKo Из Шилдта
ЦитатаOrder of Evaluation
C does not spe... Jun 15 2018, 09:53 Herz Автор! В этом разделе 99% вопросов "по к... Jun 15 2018, 10:42   Forger Цитата(k155la3 @ Jun 15 2018, 17:11) Може... Jun 15 2018, 14:35     aiwa Цитата(Forger @ Jun 15 2018, 23:21) Неясн... Jun 15 2018, 21:44      Forger Цитата(aiwa @ Jun 16 2018, 00:44) ...да, ... Jun 15 2018, 21:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|