- 1
#define CHK( x ) {do{if (x == MBRES_ERR){goto __gotoFAIL;}} while (FALSE);}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+58
#define CHK( x ) {do{if (x == MBRES_ERR){goto __gotoFAIL;}} while (FALSE);}
Из SDK корейского сканера
Использование FALSE вместо false в крестах тоже радует.
Да не кресты это. Это C/C++ (когда автор пишет на крестах как на си).
Самое отвратительное сочетание
Нет никаких проблем реализовать полноценную C++-обёртку (читай - с поддержкой RAII) над сишным апи и спокойно писать прикладуху на идеоматичном C++.
Я просто насмотрелся на проги, которые используют сырые низкоуровневые ресурсы и malloc/free/new/delete вперемешку с исключенями и goto. Это леденящий душу 3.14здец.
А какой в них смысл если доступны new/delete? Я бы вообще в свежий стандарт
чистого Си (если он выходит сейчас) бы перенес их вместе с пространствами имен и каким-то простейшим полиморфизмом для сишных функций.
К примеру, если какой-то сишной либе нужно отдать указатель, который она потом освободит через free. Ну или наоборот - либа возвращает malloc'нутый указатель, который мне нужно будет освободить через free.
Известны 10 преимуществ Паскаля перед Си
Я приведу только одно, но самое важное.
На Си вы можете написать:
for(;P("\n").R-;P("\ "))for(e=3DC;e-;P("_ "+(*u++/8)%2))P("| "+ (*u/4)%2);
На Паскале Вы НЕ МОЖЕТЕ такого написать
что это?
Туз интов.
нашел православный вариант
А С с ООП так и вообще смотрится адово
Что дает сочетание максимального быстродействия рантайма, экономичности и безопасности.
1. Универсальный механизм управления ресурсами - объекты + идиома RAII.
2. Встроенный функциональный язык для метапрограммирования с паттерн-матчингом - шаблоны. Если подсел на шаблоны, мир уже никогда больше не станет прежним.
3. Возможность выбрать стиль программирования, наиболее подходящий к задаче - процедурный, ООП, функциональщина, метапрограммирование. Можно сочетать.
4. Возможность напрямую дёргать системные вызовы и низкоуровневые сишные апи, не дожидаясь, пока их красиво обернут в популярной платформе. Особенно полезно в сочетании с пунктом 1.
5. Нет пауз gc. Возможность работы в условиях real-time.
6. Быстрый старт приложений.
2 А потом начинается шаблоноблядство - вообще хуй че прочитаешь
3 лучше иметь кошерный набор инструментов, чем один, который может все, в том числе и стрелять тебе по ногам, сношать тебя анально и течь
4 в резулятате чего ось ложиться на лопатки - ибо дергается за яйца без какой либо защиты (зато быстро)
5. По дефолту нет. А вообще можно подцепить
так о чем это я? о том, что язык полезен, но он полон подводных камней, и подходить к нему надо осторожно и в сознательном возрасте (не раньше 25 лет). Неоправданно высокий пород вхождения, монструозность и всеобьемнимость. Си гениален тем, что прост как 3 рубля, но эффективен и красив. А тут... печаль - тоска. Как по мне - так плюсы должны быть малопопулярны (как хаски), дабы люди, решившие на них кодить, понимали че это, и что язык этот - удел извращенцев и гиков.
Почему я ненавижу язык. люто, бегшено? - потому что во всех вузах (кроме ТГУ ибо у нах пох на чем сдавать) и полувузах его преподают как основной язык. Человек не знает что такое граф - но его уже садят на крестоблядскую машину. Это прискорбно
Только у неосиляторов, которые все еще освобождают память вручную.
У меня в небольшом проектике было одно delete на 90+ классов, и то просто лень было выпиливать... И ничего не текло, да. А с move семантикой можно еще и кучу new убрать...
> преподают как основной язык
Уверен? Вроде в вузах преподают C/C++ (аля си с классами). И это прискорбно, да. Как раз из-за такого обучения проги у нубов текут как сучки...
Если прога может взять и положить ось на лопатки - значит это была хуёвая ось (или просто ты купил мало оперативки и она упала в своп).
> дергается за яйца без какой либо защиты
Ты под досом что-ли работаешь? :)
А баги в ядре и дровах они ведь на любые языки одинаково влияют. Сишка/кресты тут на равных со всеми остальными.
Там букет разнообразных ароматов достигается уже после 2-3 недель реверсирования...
Либо стало слишком много фиговых писателей...