- 1
- 2
- 3
- 4
- 5
- 6
for(i = 0; i < strlen(line); i++)
{
...
doSomethingWith(line);
...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+31
for(i = 0; i < strlen(line); i++)
{
...
doSomethingWith(line);
...
}
Пишет на С++, так как в нем (цитирую) больше возможностей, но std::string он не использует по причине (цитирую) его несовместимости с си компиляторами.
Автор намекнул мне, что я не умею в многопоточность и что этот код лучше любого другого подходит для исполнения в многопоточной среде на тот случай, если переменная line bump изменится ("англици́зм" цитирую дословно, видимо вставленный для понтов и переводимое как наречие внезапно).
Имеет ли смысл доказывать, что он не прав, если я с ним не работаю?
Нет.
По моему опыту такое выдают "devolved" (как антоним evolve; знаю что неправильный англиский; может "de-evolved"?) типы, которые слишком долго работали в одиночку (или без критики/отзывов из вне), и их стиль программирования (и как следствие профессионального общения) деградировали в нечто несуразное. И это нечто несуразное с их точки зрения очень близко к совершенству, поэтому теперь они уже критики просто не приемлят.
Предлагаю не останавливать эксперимент и продолжать наблюдения. Будет что постить на ГК - и простое человеческое общение этому типу однозначно пойдет на пользу.
Ты хотел сказать stagnant?
> devolved
> ("англици́зм" цитирую дословно, видимо вставленный для понтов
Я хотел сказать "evolved backwards, from higher to lower forms."
Ааа.. degenerate
(с) "Брильянтовая Рука"
Питухи не осилил указатели - питухи всегда пишут фуфло. Фор в 99% не нужен, но питухам не дано.
правильно, чёткие посоны юзают std::transform или std::for_each. Только функции высшего порядка, только хардкор!
http://funkyimg.com/u2/4652/484/794415superhackkiller1997.png
Ладно бы Варга, я бы еще понял.
http://imgur.com/h1Jxnz2
Цикл для этого юзает только питух, который не осилил указательнауказатель, либо инлайн.
Код питуха.
Цикл для этого юзает только питух, который не осилил указательнауказатель, либо инлайн. А while это таки цикл.
Код питуха.
while(*(line = doSomethingWith(line))) - вот сдесь.
>Цикл для этого юзает только питух, который не осилил указательнауказатель, либо инлайн. А while это таки цикл.
Питух, тут цикл ничего не делает. И для чего этого? Ты питух даже копипастить нормально не может. Нет питушок, тут цикл по иной причине.
Так зачем он, если не делает ничего?
while(*(line = doSomethingWith(line))) - а что тут, питушок?
>>Цикл для этого юзает только питух
Сам его же и используешь.
Питух, цикл для "этого"( для питухов поясню: "это" - это, для чего он юзается по контексту, а по контексту он юзается для перебора строки) юзают только питухи.
Мой же цикл следит только за концом массива. Его можно вообще выпилить и написать 10раз подрят строку из цикла без изменения и оно будет работать - это значит не юзать цикл как питушок.
Ну и да, питух, ты авось попытаешься отвечать на мои вопросы? Мне не интересно слушать твой питушарний слив.
Ага, но не следит за изменениями строки.
А мне как раз интересно с тобой общаться, продолжай. Или зассал?
С чего он должен следить за какими-то изменениями. Код питуха выше следит за чем-то, за чем мой не следит?
>А мне как раз интересно с тобой общаться, продолжай. Или зассал?
Ты сливаешься, как питух. Ты не можешь отвечать на мои комменты полность, а отвечаешь выборочно - это первый признак питуха и сливателя.
По форме построения аргументов (не по аргументам) ты мне напоминаешь автора этого гк.
Сам читай
А вообще, питухи так и не осилил свою архитектуру - мне похрен на их ко-ко-ко. На х86 при вменяемой организации данных никакие локи, софтварная атормащина и даже хардварная не упёрлась.
тебе еще и инвариант подавай.
Твой пойдет по памяти дальше.
Если кто-то поменяет строку, то он выйдет либо на том конце, где он был раньше, а если его перезапушит - он выйдет на нулях( для тебя открой тайну в линуксах, да и вообще в посиксах память возвращается занулённой, а так же у всяких малоков есть выравнивание).
Поэтому, кто этому питушку поставил плюс?
Если попросить круглый размер - маллок ничего не добавит, и код не нарвавшись на нули от выравнивания попрет читать или следующий блок или структуры аллокатора.
P.S. Я не защищаю изначальный код. Как твой, так и изначальный код - непотокобезопасны. И если соседний поток может менять line - юзать оба кода нельзя.
Добавит.
>P.S. Я не защищаю изначальный код. Как твой, так и изначальный код - непотокобезопасны. И если соседний поток может менять line - юзать оба кода нельзя.
Потокобезопасность придумали питухи, который ничего не знают о тредах. Мой код не хуже того, что запости TC - только он быстрее, короче, проще и понтовей по всем параметрам.
Если в коде соседний поток может менять line - этот код питушня и я просто клал на того, что написал эту питушню.
Пруф.
> Мой код не хуже того, что запости TC
Отчасти хуже - функция, которую он вызывает должна возвращать str+1, а это можно забыть. Хотя... крутые хацкиры же ничего не забывают ;)
> Если в коде соседний поток может менять line - этот код питушня и я просто клал на того, что написал эту питушню.
Тут ты прав.
У малока выравнивание 2*size_t . А ему для фри нужен size_t - т.е. free(ptr); - это ptr-sizeof(size_t) - т.е. первый size_t он никогда не трогает.
size_t size_t и тут уже начинается твой указатель, который вернул тебе малок. Первый size_t маллок никогда не трогает, а вот второй трогает.
>Отчасти хуже - функция, которую он вызывает должна возвращать str+1, а это можно забыть. Хотя... крутые хацкиры же ничего не забывают ;)
Ну он же не забыл в форе ++i - не забудет и тут.
Ок, тут надо перекурить.
> Ну он же не забыл в форе ++i - не забудет и тут.
Одно дело не забыть в одной функции, а другое - когда ++i в одной функции, а while от него в другой.
Да, ок, тупанул я. На круглых размерах действительно будет паддинг в конце. Не будет его на размерах sizeof(size_t) * (2*N+1) - на 32-битной архитектуре - 12, 20, 28 и т.п.
с этого места поподробнее.
Почитай википедию - там написанно про это.
Знаешь почему пацаны юзают сишку? Патамучто она предсказуема и пацан может определить есть ли фейлы в его реализации или нет. А питушки на всяких питушачих плюсах и жавах даже не могут сказать - будет ли local_ptr = global_ptr; атомарной или нет.
А то ты мне начнёшь понять, что некоторые пацаны пишут на систайл плюсах. В этих плюсах нет ствоего стл"а в нужных местах, нет всяких иных питушрнь - всё написано на сишке. Так написан тот же шланг( правда он написан как питушня, но на сишке).
Сайзоф от литералов для питушков. Тут он, к сожалению, прав.
не всяк литерал основан на char
Для строкового литерала - не только петушок;)
SEO. Скоро эта страничка будет гуглиться по слову петушок.
Что за питушарный цикл? Что за питушинуе мутабельное говно я вижу в этом питушином императивном цикле?
Тру поцаны делают рекурсией.
сейчас огребешь двушечку
Вот эта питушня: Должна юзатся для каждого символа из стрки:
Меня радует, что хоть printf(line); не пишите ради мифического ускорения, добавляя експлоиты.
Пацаны используют putc.
Кстати gcc умудряется простейшие случаи с принтфом превратить в putc и puts ;)
Почему ты не учил этих питушков уму-разуму?
и зачем получать значение символа +1, ты так и не ответил
походу, твоя куриная анскильность не позволяет понять разницу между *s + 1 и *(s + 1), и ты снова в луже
компиляторы уже устраивают срач на ГК?
кто знает, каким он был 7 лет назад, может, челябинские светила психиатрии чем-то помогли бедному, но я сомневаюсь, в россии все херово с психиатрией
вот и все что знает - на уровне 3 класса, небось и родители от него отказались, наверное, стоит пожалеть его..,
Он понимает даже такое и способен ответить?
Питух, патамучто так надо - читай говнокод, питух. Суть говнокода в том, что он может отдельно юзать что угодно для каждого символа.
>походу, твоя куриная анскильность не позволяет понять разницу между *s + 1 и *(s + 1), и ты снова в луже
Нет, питух. Там написано всё правильно. *(s +1) у меня будет на следующей итерации - мне не нужно выводить следующий символ.
На более сложных код будет ещё красивее, а питушки так и пишут фуфло. Кстати в вашем питушарнем C++ до этого уже дошли, но не вы питушки.
Вот тебе уже больше хаскель, но я побоялся, ибо пацаны не поймут.
P.S. А вообще надо бы вот так: чтобы не баговало на пустых строках. Зачем тебе в данном конкретном случае этот гццизм с блоком?
Патамучто - это пример.
>Тогда уж просто
Ну возьми что-то посложнее - будет питушня.
>while (*str) { *str = f(*str); ++str; }
Питушня. Длинше, лишняя проверка в начале, некрасиво.
А, т.е. проверка на пустую строку она лишняя? Шел бы ты отсюда, лолка, со своим быдлокодом, который неадекватно пашет на пустой строке.
Это ж "контрактное" программирование. Код работает только на седьмые лунные сутки, если в четверг был дождь и папоротник расцвет не раньше, чем позавчера.
И да, питушок, я смотрю ты слишком раскукорекался в последнее время? Тебя ещё в лужу потыкать?
Определись уже.
Он раньше вроде более вменяемо говорил?
Вообще-то я понял что ты сазал, но книг тебе нужно почитать для востановления речевых центров.
Тебе бы мышление упорядочить. Х анскиль бы помог.
Лямбда, хаскилизм и гецецизм головного мозга.
Питух. Ты несёшь, как и все питушки тут, херню, даже не понимая что ты несёшь.
Наконец заметил, я думал уже не заметишь.
он GNUcicism использует?
aka_cppalg(line, toupper);
упс, да?
слив на сливе, ну что за лошара
Что именно упс? Ты питушок тотальный анскиллед - иди подучит выравнивание там, как пишут пацаны нормальный код.
Если ты питушок, то зафигач туда проверку.
Чего слив? Может быть aka_cppalg(NULL, toupper); Тоже будет слив? Ах strlen() как ты мог предать питушка, а он такой питушыстый.
Ну и нахуя он тогда нужен?
Питух, пользовательский ввод/файлы( хотя не пишу питушню, которой это надо) обрабатывает отдельный анализатор, который проверяет его(ввода) корректность и только потом эта питушня попадает ко мне в рабочий код.
Только у питушков по коду гуляют нуллы и прочая байда. У нормальных людей непредсказуемые вещи в коде не обитают.
А пустая строка это нормальный случай для многих полей ввода.
Скажи, что делать, если пользователь не желает указывать маску для подбора, а его предпочитаемые настройки нужно сохранять, загружать и обрабатывать?
Нет, птиух. Пустая строка - питушня, и быывает только у питухов.
Питух, сохранять настроки тебе похрен как. Загружать, питух, их надо специально запиленным кодом, питух.
А обрабатывать уже надо кодом, который пишу я, ибо если ты не питух - у тебя пустых строк в обработке НИКОГДА НЕ БУДЕТ. А если ты питух сразу файл даёшь в обработку - ты питух и твйо код говно.
Просто ты много говоришь, а коде, который можно использовать кроме как в «примерах» не показываешь. Создаётся впечатление, что ты профессиональный писатель примеров, который нихуя не может на продакшене.
Зачем питух тебе заменять все ненужные символы на что-то там - так делают только питухи.
Ты мне предлогай реальный приме - зачем и что тебе надо.
>Просто ты много говоришь, а коде, который можно использовать кроме как в «примерах» не показываешь. Создаётся впечатление, что ты профессиональный писатель примеров, который нихуя не может на продакшене.
Ты, питух, совсем упорлся? С какого хрена у меня в коде будет пустая строка? Питух. Как она там появится? Питух.
Вы анскильные "продакшн" питухи, которые вояют говно за еду, ничего не зная.
Требование ТЗ. Это реальный пример. От нас только коррекция «до 10к символов». В оригинале было «неограниченной длины»
В файле описываются маски для полей ввода в программе. Именно такой формат для совместимости с уже имеющимся ПО у заказчика. В случае пустой строки — свободный ввод.
>Вы анскильные "продакшн" питухи, которые вояют говно за еду, ничего не зная.
А ты борец за идею, знающий всё лучше всех, но ни копейки своим трудом не заработавший и ни строчки в открытые проекты не внёсший.
Я шлю питухов нахрен.
Питух - осиль таблицу:
>В файле описываются маски для полей ввода в программе. Именно такой формат для совместимости с уже имеющимся ПО у заказчика. В случае пустой строки — свободный ввод.
Питух идёт нахрен.
>А ты борец за идею, знающий всё лучше всех, но ни копейки своим трудом не заработавший и ни строчки в открытые проекты не внёсший.
Мне это не упёрлось. Есть вы - анскилледы, которые пишите фуфло бесполезное за еду. Есть я - у меня нет времени писать фуфло за еду.
Надеюсь ты понимаешь в чём разница между 10питушарскими строчками в спо проектах и царём с бесконечно понтовым скиллом, причём спошник.
У одних задача коммитить 10строк, у других подымать с колен.
Ну назови хоть один проект, которым пользуется более чем один человек, который ты «поднял с колен». Или дай ссылку на портфолио.
Судя по тому, что ты не смог решить элементарный пример, который даже на собеседование на джуниора давать стыдно, не привёл примера реального использования кода с оглядкой на реальные особенности платформ с доказательством, что тут байтоёбство даст выигрыш более чем в одну наносекунду за всё время работы программы, ты исключительно дрочишь на свой «идеальный» код, который метлой бы вымели из всех более-менее нормальных проектов.
Поднимаю проекты с колен анскилледы - я не копаюсь в гумне.
>Судя по тому, что ты не смог решить элементарный пример, который даже на собеседование на джуниора давать стыдно, не привёл примера реального использования кода с оглядкой на реальные особенности платформ с доказательством, что тут байтоёбство даст выигрыш более чем в одну наносекунду за всё время работы программы, ты исключительно дрочишь на свой «идеальный» код, который метлой бы вымели из всех более-менее нормальных проектов.
Питух, я клал на ушлёпков типа тебя. Какие особенности платформы, питух? Какой платформы? Аппаратной? Дак питух тут без разницы.
Питух, какой программы - в нормальном коде( который работает, а не форму в гуйне апдейтит) - наносекунда - это порядки, а ты питух этого не поймёшь.
Я тебе питух написал выше то, что тебя, питуха сольёт в хламину, ибо ты, питух, не осилил таблицы, ибо питух.
И делал на ифах, либо на свиче( и то врядли), ибо питух.
Чтож ты не ответил мне, питух?
Чему равно x?
Подсказка: это не x86, и даже не ARM
Мне похрен на твою питушню, хотя ты настолько питушок, что просто пичаль.
И что же он конкретно делает?
Я бы не был столь категоричен. Вайпать он не вайпает, что набросы делает - так мы тут привыкли к рафинированным троллям (не будем перечислять, все и так знают), попутно выясняется что-то новое, интересное. Плюс, вдруг перевоспитается организм.
ну так чем отличается fprintf(stdout, ... от printf?
Питушкам не понять, а мне удобней.
Я пишу так, как хочу. Я люблю м енять выводы для удобства и красоты( один красненький, другой синеникой или как-то так). Я пишу fprintf(stdout быстрее, чем он пишет printf.
Допустим я у меня одновременно работают 2 вещи и я хочу запилить отладочный вывод, а stdout мне не нужен - я пишу в одной stdout, а другое stderr - и у меня разными цветами будет красивый вывод в консольке.
Это объективно удобней, чем "SHIT 1 OUT:" и "SHIT 2 OUT:".
Да и вообще, почему у меня должна быть не симетричная питушня в коде.
Потому что у тебя всегда несимметричная питушня в коде.
стоит тыкнуть тебя в любую тему, как сразу всплывает жуткий пробел
принтф ты просто никогда в жизни не использовал - даже был не в курсе, что еще миллион способов вывода в консоль, ну что ж, очередное открытие царя сишки
каждый день что-то новенькое, да?
Где - пруфы.
>принтф ты просто никогда в жизни не использовал - даже был не в курсе, что еще миллион способов вывода в консоль, ну что ж, очередное открытие царя сишки
Причем тут пильён способов питушок. Любой твой питушатскйи вывод - это write() после sprintf().
Питушок.
>каждый день что-то новенькое, да?
Я знаю, что ты слился и пукан болит, но не выражай своё невежство в токой грубой форме - ловить меня у тебя не выйдет. Дальше говори, что мой код не работает и т.п. - питушки тебя плюсанут.
с производной то разобрался?
http://www.linux.org.ru/forum/development/9152724/
Что это за питушня? Нахуя менять значение str, если нужно только вернуть результат?
Норм пацан бы написал
return str+1;
Хотя это же слишком понятно, кулхацкеры не любят понятный код
Нет, куллхацкеры не любят понятный для питухов код. Если ты не осилил ++str - ты питух, а писать str + 1 - мне лень - это на 2 символа больше.
Поэтому ты питух и питухи тебя плюсанули.
Так пишут только питухи, это во-первых.
Ты снова пропизделся, это во-вторых.
Чтобы было понятнее, во что компилятор превратит, надо писать так:
Пацаны итак знают во что конпелятор это превратит - им не надо писать это самим. А вот питушка типа тебя всё нравится писать лишнюю байду.
Пиздишь, современные компиляторы настолько хитрожопы, что предсказать выхлоп невозможно.
Или ты пишешь на асме, или все твои высеры про понятность для машины - питушиное кукареканье пиздобола, не отвечающего за базар.
> А вот питушка типа тебя всё нравится писать лишнюю байду.
Охлол, ты ж ресурсы руками удаляешь, и про лишнюю байду что-то пиздишь, двойные стандарты у тебя, питушок.
Реально? Я предсказал. И не зря там написал ++str, а так же инлайн.
>Или ты пишешь на асме, или все твои высеры про понятность для машины - питушиное кукареканье пиздобола, не отвечающего за базар.
Щито?
>Охлол, ты ж ресурсы руками удаляешь, и про лишнюю байду что-то пиздишь, двойные стандарты у тебя, питушок.
Какие ресурсы - я ничего не удаляю. Питушки не осиливают кольцевой буфер? Стеки? Или питушки как мужики пишут каждый раз маллок?
И с ключом -O0, и -O1, и -O2, и -O3, и со всеми значениями -march, -mtune, и с прочими ключами -f... пацаны заранее знают, во что это компилятор превратит?
Про ключи ф питух пробалаболился, ибо в основном они тоже не влияют, а которые влияют вынесены в O, остальные не юзают, а если юзают, то знают, что они делают.
Поэтому питух написал фуфло.
O1 просто так - самые притивные оптимизации собраны, чтобы были как минимальный джентельменский набор.
O2 - уже юзают все, меньше не юзают.
То есть SIMD это так, баловство, и инженеры крупнейших компаний по производству процессоров нихуя не делают за большие бабки?
Питухам лижбы вякнуть какую-то херню. И да, -m, питух.
Каким нахрен 386 - я тебе дал линк, питух, ты видешь там код для 386-го? питух? Без марча? Питух. Питух, ты не осилил msse4? Питух, использует "комманды" гцц как питух, и никакого перфоманса ты не получишь, питух.
Наркоман?
А питухи даже не могут выдерживать стиль.
> Нормальные люди пишут str + 1
О как.
Но писать ++i, когда нужно лишь i+1 - это питушизм.
Писать
++i более одного раза в выражении - питушизм.
И вообще почти всегда питушизм, когда инкремент является частью более сложного выражения.
Питух, там не нужно. Да, конпелятор за тебя исправит (i + 1) на ++i, ибо ты анскильный питух.
Из-за таких питухов в мире и нет перфоманса.
Вот во что компилируется без оптимизации:
Инкремент должен новое значение засунуть обратно в i, а (i + 1) новое значение никуда не копирует, кроме результата.
Я специально компилировал без ключа -O2, чтобы показать, чем ++i отличается от i + 1.
Да, с оптимизацией тут получились одинаковые выражения и похожи они на i + 1, а не на инкремент. Ты же писал: «Да, конпелятор за тебя исправит (i + 1) на ++i».
Итого: слив.
Зачем мне это?
>Я специально компилировал без ключа -O2, чтобы показать, чем ++i отличается от i + 1.
Я знаю чем они отличаются. Только вот, квадратный питух, там у меня инлайн.
>Итого: слив.
В чём?
return ++i для питухов и инлайн тут ни при чём.
По стандарту конпелятор не может изменять значение, которое ему пришло, но это не имеет значение в моём случае. Что ты, квадратный питух, придумал там себе - я клал.
Тебе показали, что при оптимизации компилятор заменяет ++i на i+1 в ретурнах, если i — локальная переменная. Радуйся, что компиляторы умнее тебя и знают, что этого говна в коде быть не должно. 30 лет назад компиляторы такого не умели. И твоё ++ скомпилировалось бы как есть: с лишней операцией.
Питух, ты там слился - пришел сюда?
Питух, ты не знаешь как работают конпеляторы? Это не без оптимизации, питух, а с пессимизацией. С O0 конпелятор ВООБЩЕ(кроме ea) не юзает регистры.
>Тебе показали, что при оптимизации компилятор заменяет ++i на i+1 в ретурнах, если i — локальная переменная. Радуйся, что компиляторы умнее тебя и знают, что этого говна в коде быть не должно. 30 лет назад компиляторы такого не умели. И твоё ++ скомпилировалось бы как есть: с лишней операцией.
Ты что несёшь, питух? Что мне показали, питух. Ты понимаешь, что там инлайн, питух? Ты понимаешь, что аргумент копируется в функцию по стандарту и не изменяется, питух?
Кури, питух.
А функция инкримент всегда инлайнится, и конпелятор ваше говно (j + 1) преврщается в ++j, а j - это алис того, что ты послал в функцию.
Тут конпелятор зафигачит инлайн, i и j - алиасы - j выпилвается. Остаётся i = (i + 1), что заменяется на i += 1 ака ++i( по понятным причинам конпелятор не юзает Inc).
Если конпелятор так не сделает - ты получишь тормаза и говно. Поэтому и питушки те, кто отлаживает на -O0, ибо регистры конпелятор не юзает, алиасы не выпиливает( а это умеет делать любой конпелятор, особенно тот, что был 30лет назад).
Нет, курочка, в точности наоборот.
> Поэтому и питушки те, кто отлаживает на -O0, ибо регистры конпелятор не юзает, алиасы не выпиливает
Курочка, ты понимаешь смысл отладки? А, ну да, ты ж ничего нормального не писал...
Твои же листинги демонстрируют, что return i + 1 компилятор считает сразу как инкремент result, а return ++i требует лишних операций: либо инкремент result и копирование результата в i, либо инкремент i и копирование результата в result.
То есть оптимизатор как раз наоборот, заменяет return ++i на return i + 1.
ret - выходящая переменная(входящая), i - входящая.
ret = i + 1; - твоей вариант. так и делает гцц через леа.
Мой вариант гцц тоже вревращает в твой, ибо нет профита изменять ай. Но лишь потому, что ты квадратный питух.
А вот при инлайне уже есть смысл писать ++i, ибо иначе нам надо будет создавать ещё 1регистр, делать в неём леа и приравнивать i, но питух этого не понимает.
Смысл в ++i есть только, если i передаётся по ссылке, а не по значению.
См. листинг ещё раз. Оптимизатор избавляется от ++j, когда оно не нужно.
Видишь? Патамучто теперь j не просто переменная, а алиас i. Вы, квадратные питухи, дальше своего носа не думаете и поэтому несёте тотальный щит.
Конпелятор не юзает ++j только потому, что по call abi там нельзя. Если бы он мог возвращать j - он был сделал ++j. Но меня не интересует ограничение call abi для функции, которая никогда не будет call.
Ты упорлся, какая нахрен выклеченная оптимизация, питух? Вы меня одалели нести херню.
>В инлайне j+1 сведется в выхлопу аналогичному для ++j лишь по причине инлайновости.
В этом и суть, ибо ЭТА ФУНКЦИЯ НЕ ИМЕЕТ ИНОГО КОНТЕКСТА, КРОМЕ ИНЛАЙНА. Тупые питухи.
Курочка про SSA формы и ее аналоги читала?
А ведь в SSA форме, если i дальше не используется (а оно не используется, т.к. мы видим return), и твой a = ++i, и a = i+1 и даже a = i+=1 имеют абсолютно одинаковое представление (a - временное значение, которое вернет return).
Поэтому срал компилятор на то, как ты это напишешь, промежуточное представление будет одинаковое. А то, как компилер поступит дальше - зависит уже только от следующих этапов оптимизации.
Я об этом, питух писал выше. Конпелятор без оптимизатора не имеет смысла и смотрят на это питухи.
А вот люди смотря на то, во что это превратит оптимизатор - ибо он гинерит код, а не транслятор, питух.
Поэтому твоё, питух, ко-ко-ко оставь для тех питухов, что выше по треду.
Инкремент в правой части выражения пишут только питухи. Не веришь?
http://lurkmore.to/%2B%2Bi_%2B_%2B%2Bi
Поэтому ++i будем писать только в левой части выражений, а в правой будем писать i+1.
Логично писать тут ++i, ибо это инлайн, квадратный питух. входящий и выходящий аргументы АЛИАСЫ, анскильный, квадратный питух - пэтому для алиасов ret i + 1 = i +=1 = ++i; Питух.
Какой левой части? Ты что несёшь? Чего не придумаю питушки, лижбы нормально не слиться. ++i - не уб, питух, и всегда возвращает (i + 1), питух.
Вот жеж долбоёб, придумал какую-то питушиную хуйню и оправдывает её какой-то питушиной логикой типа "в огороде бузина, потому что в Киеве дядька"
Покажи нам страницу стандарта, на которой это написано. Не покажешь, царёк куриный? Или ты там вообще свой питушинский стандарт уже написал и его нам цитируешь?
a = ++a?
Питушизм как он есть.
a = a+1
и
a = (a+=1)
второе выражение написал питух, и этот питух - ты
a = a + 1;
А мой до:
a += 1;
Потом конпелятор твою питушню заменяет на мой вариант. Без разницы как это выглядит в промежуточном представлении - выражение всегда смотрится после сокращения.
a = ...
а внутри этого ... написано ++a
то есть у тебя написано
a = ++a
ну или
a = (a+=1)
что одно и то же
Наконец-то ты сам это признал.
Вы такие смешных, вы уже привыкли жить в обществе питушков, где демагогией и каверканье/перевиранием и подменой понятий вы заставляете питушков вас плюсовать, неся тотальную херню. Авось вы когда-то перестанете это делать.
Страницу стандарта мне покажи, цыпленок, на которой написано, что-нибудь про инлайн сишных операторов (не функций, а именно операторов). Ты его поди не открывал ни разу, яйцо куриное?
Ты уже пропитушился - не пытайся.
О_о. Ямщик не гони... Может имелось в виду в единственной части выражения?
Спасибо за идею. Надо будет попробовать насобирать синяков и шишек, поставив инкремент слева от присвоения.
Не всегда, но здесь не тот случай.
А не ты ли, курочка, нам тут выше херню порол, и говорил, что ++i писать лучше, ибо перформанс, а i+1 пишут лохи?
Питух, ты понимаешь, что он не может вернуть ++j из-за call abi? Питух.
Питух ты понимаешь, что этот инкримент конпелятор САМ заинлайнит и превратит в return ++j;?
1. return i + 1;
2. return ++i;
Второе эквивалентно коду:
Где здесь i = i + 1, superhackkiller1997?
>инкременты на присваивании
двоемыслие такое двоемыслие
P.S. А если парень серьёзен, то такого эффекта Даннинга-Крюгера я ещё не встречал.
А мы бы поняли, что без него опять настанет скука... Ну и по крайней мере он не вайпает борду как некоторые, а все-таки просто пишет.