Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[54.242.220.142] |
|
Страницы: (5) 1 2 [3] 4 5 все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
Сообщ.
#32
,
|
|
|
Здесь пока - фифти-фифти; в той отдельной думаю, что Полином2pentPro будет с перевесом (по количеству виденых мною исходников...).
|
Сообщ.
#33
,
|
|
|
Вот и правильно, Славян. А то для }, вишьли, отдельная строка, потому что заканчивает блок, а { почему-то скромненько спаривается с заголовком, что к последующему блоку не имеет никакого отношения, кроме обоснования его наличия.
|
Сообщ.
#34
,
|
|
|
Да, а я как бы согласен с вами, Qraizer, но всё равно мне чертовски жаль, что на фигурки уходит две строчки. Ничего тут не могу поделать! Горе, непреодолимое, и всё тут.
|
Сообщ.
#35
,
|
|
|
Цитата Славян @ Да, а я как бы согласен с вами, Qraizer, но всё равно мне чертовски жаль, что на фигурки уходит две строчки. Ничего тут не могу поделать! Горе, непреодолимое, и всё тут. Не слушай Qraizer'а - переходи на светлую сторону Силы! Одну строчку можно сэкономить - используй Java Style. |
Сообщ.
#36
,
|
|
|
Сокрытие строки не есть светлая сторона, а токмо тёмная!
|
Сообщ.
#37
,
|
|
|
func :: ArgType -> ReturnType func arg = statement Problems? |
Сообщ.
#38
,
|
|
|
Цитата Славян @ Сокрытие строки не сокрытие - а экономия! |
Сообщ.
#39
,
|
|
|
Единственным выходом из непреодолимой ситуации вижу только такой: если весь блок вычислений находится правее if'а (for'а, while'а, ...), то компилер бы его сам заключал в фигурные скобки! И экономия и красота, но... мечты?..
|
Сообщ.
#40
,
|
|
|
Цитата JoeUser @ И экономия и красота, но... мечты?.. Переходи на питон |
Сообщ.
#41
,
|
|
|
терпеть не могу ! в начале
if (a ...) if (b ...) if (!c ...) неровненько... |
Сообщ.
#42
,
|
|
|
А я вот так пишу:
if ( a ...) if ( b ...) if (!c ...) a = ... b =(...) c+= ... |
Сообщ.
#43
,
|
|
|
Так и не должно быть ровненько! Строки вида "if( a...)" несут суть опосля переменной (вида "if( a!=...)"), а строки же с отрицанием сразу утверждают нечто "if( !c )". Разная идеология! В первых вариантах "a" сравнится с чем-то/с какой-то субстанцией, а в отрицании ужо сказано, что всё тут двоичное грядёт. Так что - норм!!
|
Сообщ.
#44
,
|
|
|
Цитата Славян @ Только "!" использую. Ибо вещали (сильно давно), что операция CMP (асм-реализация "==0") крайне тормознутая, а "test" (в случае ! используется, бывает) существенно быстрее! ЛОЛШТО? bool foo1(int a) { return a == 0; } bool foo2(int a) { return !a; } компилируется в foo1(int): test edi, edi sete al ret foo2(int): test edi, edi sete al ret Пруф - https://godbolt.org/g/oKkN1v |
Сообщ.
#45
,
|
|
|
Да, я тоже только что проверил на типичном примере, и вижу, что оба случая (при настройках оптимизации в максимум) реализуются через test. Но это лишь говорит о том, что оптимизатор понял, что test (делает AND по сути ) быстрее довольно туповатого и прямого CMP! Так что всё норм!
Добавлено Более того, посмотрел на Release и Debug варианты и что видим: Release: test reg32, reg32 Debug: cmp dword ptr [], 0 Итог: ! быстрее ==0 при их прямом переводе на маш. код! ч.т.д. |