чисто на Си, а не на Си++ с constexpr меташаблонами и т.д быть менее производительны? Или это всё лечится препроцессором?
Посмотри лекцию Владимирова, где он сравнивает скорость сортировки в С через qsort и в С++ через std::sort. Там С медленнее, вроде как, аж в 3 раза.
И там "вылечить" С программу нельзя ничем.
Могут быть медленнее, могут - быстрее
все зависит от компилятора - важен только ассемблерный код на выходе
Ну медленее чисто не представляю тк плюсы надмножество Си
https://t.me/supapro/1113116
Это не совсем корректное сравнение
Холивар планируете?
какие-то общие слова - как это влияет на то что будет на выходе в бинаре ?
Ну вплане того что написано на Си, плюсовый компилятор сожрёт и примерно уже будет такой как Си, но конечно это не точно тк не шарю
с чего вы это взяли ?
Ну во-первых, не сожрет Во-вторых, речь об идиоматическом использовании языков. Писать на С++ в стиле Си — неидиоматично
Вопрос был насколько С программа может быть менее производительной. В лекции задача отсортировать массив. Программа на Си делает это медленнее там. Конечно, можно на Си реализовать свой алгоритм сортировки без использования стандартной библиотеки и это обгонит С++. Тогда сравнение будет корректным?
Надо сравнивать алгоритмы с одинаковой сложностью
Почему сразу обгонит, если алгоритм будет один и тот же?
да странная формулировка все равно - один и тот же код на x86_64 clang++ в linux freebsd и macos генерит вообще разное
Вопрос был в том, насколько идиоматичное использование С++ позволяет компилятору лучше оптимизировать код
clang++ в macos другой)
Ровно настолько, насколько много вычислений ты переводишь в компайл-тайм
А если в рамках одной платформы и одного компилятора?:
мне можешь это не говорить он и на бсд другой) суть в том стандарт 1 - 3 машины 3 оси выхлоп разный очень
Естественно другой
Ну как я говорил, лечится препроцессором в Си)
Да и например шаблоны в общем случае лучше, чем передача условного void*
_Generics) Ну а вообще хочется просто спрятаться от этого страшного меташаблон кода в ютненьком Си)
Си никогда не был уютненьким и никогда не будет
Ну с одной стороны C++ облегчает жизнь своим подходом, средствами, но с другой стороны увеличивает количество шансов прострелить себя и много новых техник. А в Си всё просто пару основных типов, нормальная библиотека для поддержки, если что-то разрабатывать, то всегда есть либы от других людей которые могут доставить такой же функционал как в плюсах и тд)
Всё лечится, разными средствами, проблема - в цене лечения.
Обсуждают сегодня