![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
xperienced |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
Здравствуйте.
Разгребаю один сишный (не ++) код и вижу такое:
Взял с полки Кернигана и Ритчи, сдул пыль, открыл на операторе switch. Читаю:
Ну, думаю, ладно. Раз написано выражение, попробую так:
и посмотрю в дебаге значение переменной tmp. Но, к счастью, оно не скомпилилось. Привожу полный код:
В ходе дебага эта конструкция ведёт себя так, как если бы там просто было nal. Вопрос: как это называется и где об этом написано? И главное: зачем такое надо? |
||||||||
|
|||||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Это называется "оператор `запятая`", написано в стандарте. Результат очереди разделенной запятыми является значение полученное при самом последнем действии. Программист хотел показать, на сколько он умен. Хотя, тем самым он показал, на сколько он глуп и недальновиден. Код надо писать так, чтобы понять его можно было без обращения к стандарту. |
|||
|
||||
xperienced |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
спасибо
|
|||
|
||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Руки надо оторвать этому программисту. А goto в придачу улыбает.
Это сообщение отредактировал(а) ИванМ - 14.4.2011, 11:12 |
|||
|
||||
xperienced |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
Да, там код весь гоуту усыпан.
А ещё есть вот такие вещи:
Не знаю, может кому это и привычно. Я довольно долго соображал, что же это такое. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
> А ещё есть вот такие вещи
Ставлю на то, что аффтар увольнялся и решил над тобой поиздеваться Резюме - расстреливать надо за такое -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
xperienced |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
Совсем нет. Это из open source проекта EvalVid. Автор, скорее всего, старой закалки. Из тех времён когда памяти было меньше, процессоры медленнее, трава зеленее ... Тогда гоуту и прочие прелести были в порядке вещей. Это проект EvalSvc, автор которого беспардоннейшим образом взял исходники EvalVid, внёс незначительные изменения (в один! файл), переименовал проект и написал статью о том какой крутой программный комплекс он реализовал. Но не будем об этом. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
boostcoder, убил. наповал. срочно принять закон РФ, чтобы за такое расстреливать. 3 раза.
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Я пишу под 8-ми битный микроконтроллер. Там тоже памяти мало, нет операций умножения и деления... И ничего. Почему-то goto мне использовать не пришлось... Да и таких заумных конструкций тоже. Компилятору сугубо фиолетово, сколько операций напихано в строчку. Все равно он их разобьет на элементарные. Поэтому, нечего пинять на медленные процессоры и маленькую память. Если программист дурак, то от глупостей его уже ничего не спасет. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
bsa, это не глупость, а просто другие времена. 20 лет назад код писали не так как сейчас. Наверное, это что-то вроде останков "ассемблерного" мышления в терминах регистров и отдельных переменных... Иногда мне приходится ковыряться в своем же коде ~10-летней давности (кое-что до сих пор работает и в переписывании особо не нуждается), я его просто с трудом понимаю - настолько стиль мышления изменился. А что еще раньше было, вообще с трудом уже представляю. На моей памяти концепции несколько раз менялись... И нельзя сказать, что в этом деле наблюдаются сплошные плюсы... но это уже совсем другая тема.
-------------------- ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |