- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
bool f;
ListNode* t;
return (ListNode*)
(
(!list1 * (unsigned long long)list2) +
(!list2 * (unsigned long long)list1) +
((!!list1 && !!list2 &&
(
((f = (list1 -> val <= list2 -> val)) && (t = list1, list1->next = mergeTwoLists(list1 -> next, list2)))||
((!f) && (t = list2, list2->next = mergeTwoLists(list1, list2->next)))
)
) * (unsigned long long)t)
);
}
Совсем охуели!
Программист не обязан знать структуры данных, он не математик
Эрланговских?
uintptr_t же...
Ну и раз уж запятую и локалки можно абузить...
З.Ы. Всё, там больше нету явных нуллов.
но можно понять логику (чтобы не отвалилось дохя написанного кода_
«В Крестах всё просто и понятно».
https://lwn.net/Articles/342558/
https://lwn.net/Articles/342330/
Долбоёб (ядродевелопер блядь!!!!) разыменовал хуиту перед тем, как проверил ее нанул
Мало того, что проверку теперь можно выкинуть, так еще и убэ
Разыменовка нуля в общем случсае приведет к обращению к несуществующей пмамяти и будет oops, и всё пизданеца (плохо, стыдно, но ок)
Но питузик может замапить нулевую страничку и зставить ядро сделать чоугодно. Dus, эксплоит.
Вывод: используйте статические анализаторы и глаза когда пишете на сишке
Ядро уже ничего не спасёт. Линус там уже rustухов запустил.
А этот Хуй досихпор комитит:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Herbert+Xu
*g: rust Result, pattern matching
Оно уже и так...
https://github.com/torvalds/linux/blob/d0989d01c66fed6a741820a96b8cca6688f183ff/rust/kernel/allocator.rs
какой багор ))
а какой смысл в рустне если она unsafe? Ну то есть у ней семантика почище конечно, но это же просто отключает все проваерки гнахцуй
блядь ну и хуйня. реално напомнило как питух внутри XMLя для декларативной разметни бизнес-логику императивно написал
лучше бы и дальше на сишке писали.
Например, можно с помощью static делать приватные функции и глобальные переменные на уровне единицы компиляции, а наследование нахуй не нужно, от него одни проблемы.
Таким образом, кресты отсасывают у сишки со своими блядоклассами, которые в силу возможностей сишки там просто не нужны, да ещё и ведут к более структурированному коду.
например:
* в вашей сишке надо внучрую пиродлица с памятью а в языках с ГЦ про память можно не думать
* в сишке надо портироваться под любую платформу, а в ЯВУ один раз написал и везде работает
* JIT в современных языках сделает код даже быстрее чем тот, что вы напишете на сишке вручную
* сишка устарела и в современных проектах не используется
* нет смысла знать сишку в 2022, работадателю в основном сейсас нужны другие языки
"Завершенные коровьи какашки" лучше всего делают провизоры, никогда в жизни сишку не видевшие, но читавшие про нее на сайте "ответы@mail.ru".
Рекомендую!
ХА-ХА-ХА!
> а в ЯВУ один раз написал и везде работает
Write once — debug everywhere.
Какая жирнота )))
– Нет, только показываю
– Красивое
Наследование реализации не нужно, а наследование интерфейсов -- вполне себе. В сишке это можно эмулировать через указатели, но в современных языках (го, руст) наследования реализации нет, а интерфейсы есть
В плюсах можно делать невиртуальные классы без потомков и получать удобный RAII и вызов десктрутора, и это будет хорошо, а вот полиморфизм на динамическом диспатче да особенно наследование реализации это и правда опасная дорожка.
Все языки, которые мы сейчас имеем делятся на три вида:
Функциональщина
Скриптовые
C/C++/C#/Java etc
Функциональщина - говно, т.к. непрактична.
Скриптовые - медленные и нетипизированные. Из-за нетипизированности есть проблемма того, что невозможно проверить типы на этапе компиляции, сделать хорошую IDE, хорошо делать профайлинг etc
Остаются си-подобные языки, где король C++. Он бюрократизирован, но среди сиподобных он, имхо, лучший.
Языки низкого уровня (машинные коды и ассемблер)
Средний уровень ( C, Фортран …. )
Высокий уровень (C++, Java, Python, Ruby, JavaScript ...)
Уровень также характеризует насколько подробно нужно детализировать листинг будущей программы для воплощения реализации. Насколько этот процесс прост для человека.
Я не знаю, это паста
Я бы точно не стал класть С и джаваскрипт на один уровне
Языки средние
Языки мелкие ваще жесть
Сызгъæрин къоппа!
О, уасæг, уасæг,
Сырхзæлдаг боцъо!
Куыд раджы фестыс,
Куыд хъæрæй зарыс?
Нæ буц лæппуйы
Хуыссын нæ уадзыс!
http://hetagurov.ru/po_kosta/perevody/if/ir_ru/uasaeg.htm
hentaiguro
Это же буквально копия слова «quid» из латыни.
А это от того же корня, от которого caput в латыни.
https://mobile.twitter.com/tsiplenak/status/1612723413944078336
Ну типа ik ben bewaker, werk jij als ober и пр?
Так он даже тут прав.
Сишнику-униксоиду не особо нужны питушарские потоки.
Нужно эсспараллелить? Он форкнет и в разных процессах пощитает.
Соответственно проблемы от глобалкок и статиков внутри функции снимаются.
Поставил плюс знатному боярину.
Вот так надо:
и только толпы стерторов бегают по говнокоду и дают друг другу на клык
Популярный форум-то
А он разве бесплатный???
а на гк не только
У меня в реале почти все знакомые боль-мень ватные, но конечно с налётом культурности. Типа война это ужасно, людей жалко, то-се, но наши геополитические интересы, нельзя же допустить, чтобы нато, итд
Или Чернильный Анус, который знает, что лавров, что сирия и очень переживает за дамбасс?
Или Инхо, подгорающий от слова «хуйло» и клей-мящий русофобов?
Вата -- это престижно и экологично. Не то что эта ваша сраная синтетика.
нельзя ли троллить тонкее?
Вон бормандоняша выше сделала как надо.
Когда пройдёт достаточно времени, то
> unsigned long long
> unsigned long long
> unsigned long long
Превратится в
> unsigned long long long
> unsigned long long long
> unsigned long long
И произойдёт страшная ошибка...