Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 28 1 16
Сап двач, объясните разницу между С и С++ Не раз видел сообщения про то, что это сильно различающиес Аноним 30/12/25 Втр 20:51:33 3615516 1
изображение.png 16Кб, 306x344
306x344
Сап двач, объясните разницу между С и С++
Не раз видел сообщения про то, что это сильно различающиеся языки, при чём судя по обсуждениям речь ни разу не про парадигмы
Т.е. С обмазанный GLib =/= С++
А в чём тогда принципиальная разница? В бесконечных исключениях и умных указателях? Направьте хотя-бы, что или где почитать
Обнял
Аноним 30/12/25 Втр 20:56:20 3615520 2
>>3615516 (OP)
Разный синСани Сантыс
Разные Стишокы
Разные Стишокные библиотеки
Разный бинарный интерфейс
30/12/25 Втр 20:58:15 3615521 3
>>3615520
Разный син-так-сис
Разные стан-дарты
Разные стан-дартные библиотеки
Разный бинарный интерфейс
Аноним 30/12/25 Втр 21:00:42 3615524 4
>>3615520
>Сани Санты
>Стишок
Спасибо Абу

А вообще, разве это имеется ввиду?
Аби особо не касается, а синСани Сантыс зависит скорее от направления либы
Даже в низкоуровневых компонентах ни раз видел либы, где везде читается thiscall, подход же от этого особо не меняется
Аноним 30/12/25 Втр 21:19:47 3615528 5
>>3615516 (OP)
разные парадигмы, Кресты это ООП, Си нет.
30/12/25 Втр 21:23:48 3615530 6
>>3615528
В Стишоке нет парадигм
Аноним 30/12/25 Втр 21:31:09 3615533 7
Аноним 30/12/25 Втр 21:36:58 3615535 8
>>3615533
По фактам
А разница
Аноним 30/12/25 Втр 21:40:24 3615540 9
>>3615535
Разница? 2 - 1 будет 1.
Аноним 30/12/25 Втр 22:49:27 3615580 10
>>3615516 (OP)
>А в чём тогда принципиальная разница?
В ООП - классы, наследование, RAII, исключения
>>3615530
Его там и не должно быть, это следует из исходного дизайна языка
Аноним 30/12/25 Втр 22:55:27 3615584 11
>>3615516 (OP)
>Т.е. С обмазанный GLib =/= С++
Наверное только если особо не присматриваться краем глаза с расстояния километра
Не работал с GLib, но по описанию, это просто либа функций. Никаких тебе деструкторов, а следовательно RAII, а следовательно умных указателей.
А еще шаблонов, лямбд, перегрузки операторов и далее по списку. Ну синСани Сантыс не изменишь, так что придётся корячить костыли.
Аноним 30/12/25 Втр 23:09:37 3615598 12
Аноним 30/12/25 Втр 23:13:25 3615604 13
>>3615521
Но си++ включает в себя си.
Аноним 30/12/25 Втр 23:19:52 3615613 14
>>3615604
Ну вообще не включает, а просто часть похожа на С.
И что это меняет в сказанном?
Аноним 30/12/25 Втр 23:42:22 3615621 15
>>3615516 (OP)
ООП, обобщенное программирование, да куча всего.
Аноним 01/01/26 Чтв 11:09:26 3616043 16
>>3615516 (OP)
see pp лучше во всём чем сиська с точки зрения юзания только пинусу порвальдсу и его карго культистам не нравится. see pp это суперсет над си, поэтому можно его юзать как си, за исключением некоторых подъёбок. лично мне нравится дрочь на комплтайм в цпп. но я хоббист, мб для работяг и bussyнесса цпп это жопаболь
Аноним 01/01/26 Чтв 13:33:32 3616104 17
Сишка это максимально простой язык: идеален для новичка и можно прогать всё уже со старта начиная с сетей заканчивая графикой просто дёргая апи операционной системы для которой этот язык родной.
Си плас плас это ультимативная йоба с кучей фич.
Аноним 01/01/26 Чтв 23:07:04 3616252 18
>>3615520
> Разный бинарный интерфейс
Какой разный? У C++ вообще никакого ABI нет, даже нестабильного.
Аноним 01/01/26 Чтв 23:34:00 3616260 19
>>3616252
Есть. Иначе бы нельзя было бы С++ программу разбить на линкуемые модули. То что это непереносимо это другой вопрос. Но С++ либы существуют. В тех же дистрах линупса есть пакеты с С++ либами.
Аноним 02/01/26 Птн 10:21:30 3616326 20
Аноним 02/01/26 Птн 10:30:46 3616327 21
>>3615516 (OP)
1) С++ - это говно, С - менее говно в сравнении
2) дискриминация по задачам: C++ - прикладные программы, мета-погроммирование, юзер интерфейс; C - прошивки хардвари, ядра ОС, криптографические библиотеки g(nome) lib - параша ёбаная
Аноним 02/01/26 Птн 12:37:51 3616364 22
Грубо говоря - программа на C является урезанной программой на C++:
1) в c++ есть методы, которые представляют из себя те же функции, но с доступом к объекту(структуре или классу. При этом между классом и структурой в c++ не очень великая разница). В C функции запускаются вне контекста объектов;
2) в c++ закидывают кучу всего нового каждую версию, а в C это дело(запизивание всего и вся нового) как-то слабо идёт. C в этом плане более консервативный язык;
3) C++ разрабатывался как универсальный язык с возможностью использовать ООП, но ООП в некоторых местах крайне малоэффективно в силу необходимости то выделять память, то вызывать методы из методов(функции из функций). Так что если ты делаешь какую-то штуку для Ардуино, то лучше использовать C, а если что-то, что рассчитываешь дать в использование другим, то пиши на C++;
Аноним 02/01/26 Птн 15:12:13 3616430 23
>>3616260
Можно пример такой либы, которая распространяется в бинарниках?
Аноним 02/01/26 Птн 15:22:45 3616434 24
>>3616430
Тривиально /usr/lib/libQt6Core.so.6 из пакета qt6-base в арче
Аноним 02/01/26 Птн 15:26:25 3616437 25
>>3616326
И что ты хотел сказать? Там половина уб случаев это что-то вроде разыменовывания указателя на локальную переменную или вызов функции через указатель несовместимого типа. Т.е. всё то что в здравом уме ты делать не станешь. Для аутиста с двача это максимально сложная мысль, я понимаю.
Аноним 03/01/26 Суб 02:03:51 3616812 26
>>3616430
Любая либа? никогда не видел .so файлов анпример?
Или там Qt с кучей дллок?
Аноним 03/01/26 Суб 20:01:42 3617101 27
>>3616437
В C есть неочевидные вещи, например, переполнение переменной типа signed - это UB, а unsigned - не UB.
Или точки следования, например i++ + ++i - это UB.
Аноним 04/01/26 Вск 11:07:22 3617248 28
>>3616437
Обывателю кажется, что
>половина уб случаев это что-то вроде разыменовывания указателя на локальную переменную или вызов функции через указатель несовместимого типа
Поэтому си и является сложным, ибо, это не так.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов