![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
не совсем понимаю о чем вы. Если я вас правильно понимаю, всё что написано в файлах, которые скармливают компилятору - и макро и процедуры и т.д. - это всё "код", и не важно подменяется ли часть его препроцессором или нет, главное, чтобы в исходной форме он был понятен читателю ( да и писателю ![]() -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
Vyacheslav |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
О "красоте" конкретного примера ![]()
В данном случае выясняем, что делает MAKEWORD(2,2) и делаем это вместо него в уме. Результат подставляем в код
-------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
FelikZ |
|
|||
![]() Старый Маразматик ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 1.12.2006 Где: Vault 13 Репутация: нет Всего: 5 |
Я за:
-------------------- ![]() |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
Вячеслав. извините конечно, как говорится "the beauty is in the eye of the beholder", т.е. красота - в глазах узрившего. вы понимаете, что вы просто таким действием сказали Бьярну Страуструпу, что он полный страус ? что-то из серии: "Бьярн, вот скажите, ну на фига было придумывать препроцессоры, макро в Си++?" повторяю. когда вы работаете с 1 числом, которое нужно создать таким образом его можно запомнить, и чтить. а если таких скомпонованных чисел десятки или сотни ? для этого и придумали МАКРО. мейкворд создаёт слово, это к версии не относится, поэтому создаём надстройку: мейквершен. и тогда даже через 200 лет, если люди будут программировать, прочитая этот код, понятно, что данная строка: version=MAKEVERSION(2,3) как то создаёт число-версию. пока. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
эээ... если я правильно уловил суть, вы оба - за то, чтоб не делать работу за препроцессор, создавая более запутанный и непонятный код ![]() ![]() никто не спорит. но добиваться скорости путем проделывания работы за препроцессор, замену умножения сдвигом и т.д. - это просто какая-то мания. или фобия. особенно, когда при этом массив на 1500 элементов сортируется "пузырьком" ![]() |
|||
|
||||
drZmeu |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Sorry давайе не будем сорится
![]() Я несупер кодер на C++ но стараюсь стать лучше... Любые претензии в мой адрес выслушаю... мне интересно если я делаю так: DWORD ver=MAKEWORD(2,2); WSAStartup(ver,&wsa); то тут я ещё обьявляю переменную DWORD...] А если я делаю так WSAStartup(0x0202,&wsa); То тут мне не приходится обьявлять эту переменную... Код стаёт меньше... Но я незнаю что конкретно получится в .exe файле... Если логически посудить то получится что размер должен уменьшится ![]() --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Простите Вы топик от начала до конца прочитали? Что такое смайлики в курс?. Что понимается под "красотой" можете сообразить? ( в кавычках ) А если в курсе нефиг читать мне нотации. Я тут весь топик пытаюсь доказать, что такая замена никак не тянет на красивый код. Причем подробно разъясняю свою точку зрения. А Вы мне страусом грозите. "пока" -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Что же я считаю действительно красивым кодом, то Вы можете судить по данному фрагменту
http://forum.vingrad.ru/index.php?showtopi...t&p=1011551 Это решение мне понравилось, даже несмотря на то что я его автор ![]() Добавлено @ 14:28
И кстати, только счас обратил внимание. А Вы сами а Страступа читали? В смысле не последние, а первые редакции, где он прямо говорит об нежелательности использовать макросы в С++ ![]() -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
SergeCpp |
|
||||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Vyacheslav, main возвращает int, вообще-то
Вот Ваш текст
А вот на такой текст мне смотреть приятнее
P.S. Исправил multiset<string> на multiset< string > (см. вопрос ниже). Прошу извинить за невнимательность. В рабочем коде (при многочисленных просматриваниях) я бы это непременно заметил и поправил. Неудобно тут писать ![]() ![]() Это сообщение отредактировал(а) SergeCpp - 8.2.2007, 09:29 |
||||
|
|||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Да. Это конечно очень серьезная ошибка, не спорю ![]() В смысле скопировать и через строчку? Да без разницы. Раз нравится - пишите через строчку. Вопрос не в том, как располагать, а в том что поставленная задача потребовала 5 строчек кода. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
SergeCpp, скажи, а почему в
отступов нет, а в каждый из двух типов обрамлен пробелами? я не прикапываюсь, просто интересно ![]() здесь ведь речь не об эффективности, а об эстетике, правда? а тут уже личные вкусы играют роль ![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
В плюсах по стандарту main может ничего не возвращать (хотя в сигнатуре пишется int) - подразумевается 0. Ну тогда почему здесь перед звёздочкой нет пробела, а после есть? ![]() ![]()
drZmeu, разочарую тебя - уж столь отривиальные случаи компилер точно сведёт в одно. Оптимизатор в современном компиляторе - очень жестокая вещь. Он мжоет перевернуть код гораздо серьёзнй (без последствий логике). |
|||
|
||||
Rockie |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
+1 скорее "современные компиляторы добавят return 0, если такового не имеется" -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Можно сказать точнее - "явно ничего не возвращать".
|
|||
|
||||
Vyacheslav |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Ну тогда извините. Под красотой я прежде всего понимаю возможность максимальное использование возможностей языка, а не отступы, строчки - черезстрочки. Хотя для читабельности кода это играет далеко не второстепенную роль. И для меня одним из фрагментов, написанных на С++, который стразу приходят на ум когда говорят о красивом коде, является фрагмент из двух строчек, помещенных в предисловии Скотта Мейерса к книге Александреску "Современное проектировние на С++"
-------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |