Здравствуйте, rg45, Вы писали:
R>На мой взгляд, самая ощутимая проблема C по сравнению с C++ — это невозможность использования RAII.
Там есть, но через одно место. Не могу пример привести, но видел такой код. Это полное гавно, сама логика работы просто незаметна на фоне обеспечения RAII
Здравствуйте, kov_serg, Вы писали:
M>>Функции рекомендуется группировать в файлы по объединяющему логическому признаку, т.е. как и в классах, один класс = один заголовочный и один файл исходников. В заголовочном описываются "экспортируемые" прототипы функций и глобальные переменные из исходника в виде "extern". _>И вместо одной монолитной программы которая умеет всё куча независимы модулей из которых строются большие уже на языках типа bash, python, perl и т.п.
Это ты о чем сейчас?
И почему пайтон ты упомянул в одном ряду с говном типа баша и перла?
Здравствуйте, BadCats, Вы писали:
BC>Посоветуйте пожалуйста курсы или книги про Си, которые демонстрируют его отличие от C++ — т.е материал по Си — не для начинающих, позволяющий освоить язык как "дополнительный", в том смысле, что его изучение будет не первым.
Основное отличие С от С++, это убогость и крайняя устарелость. Собственно не очень понятно, что про него ещё нужно знать.
Здравствуйте, sergey2b, Вы писали:
N>>Основное отличие С от С++, это убогость и крайняя устарелость. Собственно не очень понятно, что про него ещё нужно знать.
S>и почему же он тода еще жив S>pascal вот умер и Си живее всех живых
Удачная смесь мумификации и столкгольмского синдрома
Здравствуйте, sergey2b, Вы писали:
S>а можно пример когда такая оазница в коде
Сечас точно не вспомню. Давно это было. Но идея была такой решалось диф.уравнение с автоматическим подбором шага методом Рунге-Кута.
Решение на C++ было примерно в десятки раз длиннее. Хотя на C++ можно было написать так же, но зачем-то были использованы шаблоны, контейнеры и разные прибабахи.
На C просто банально разнотипные состояния сериализовались в один массив и обратно, а массив обрабатывалься тривиальным кодом из десятка строк.
Просто имея очень гибкие возможности C++ можно было шаблонами засунуть состояния и с ними работать, что и было нагорожено.
Но простое преобразование в линейный массив, убирало всю эту чепуху. Код был короче, проще и более того работал быстрее.
Тут дело даже не в C, а в возможности взглянуть на проблему со сторон с разными ограничениями.
И после супер общего решения которое вы считаете винцом человеческой мысли, вам показывают короткий, простой аскетичный код который решает эту же задачу даже лучше это вызывает кучу эмоций.
В целом проблема упирается в комбинаторные взрывы, получающиеся из-за широких языковых возможностей, которые используются не для решения задачи, а потому "так лучше".
В случае ограниченных возможностей вы будете искать оптимальный путь, а в противном случае будете выбирать самый комфортный.
Вообще без насиля на собой хороший код не получается. Это просто физиологическая особенность человеков.
Здравствуйте, sergey2b, Вы писали:
N>>Основное отличие С от С++, это убогость и крайняя устарелость. Собственно не очень понятно, что про него ещё нужно знать.
S>и почему же он тода еще жив S>pascal вот умер и Си живее всех живых
Потому что платформ поддерживает огроменное количество, компилится быстро, по сравнению с с++.
И альтернативы этому "высокоуровневому ассемблеру" пока не видно.
Ну и легаси, куда же без него
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Потому что платформ поддерживает огроменное количество, компилится быстро, по сравнению с с++. SVZ>И альтернативы этому "высокоуровневому ассемблеру" пока не видно. SVZ>Ну и легаси, куда же без него
моя версия, потому что
хорошо подходит для написания кода для маломощных платформ
изучаеться за неделю ученным или студентом
хорошая замена ассемблеру
легаси
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, Maniacal, Вы писали:
M>>Нет, куча .obj-файлов, которые потом линкуются в одну программу _>Для это есть либы
Особенность сишных компиляторов: один файл исходников — один объектный файл. А так да, либа = собранный в один файл набор объекнрых файлов. Либа от исполняемого файла логически только наличием функции main отличается, а физически дополнительно наличием заголовка исполняемого файла.
Здравствуйте, AeroSun, Вы писали:
AS>ну, только в юморе разве что
Как я понял, посыл был в том, что на C++ всегда руки тянутся написать код в "общем" виде, универсальный, который потом можно будет повторно использовать, а на C хочется писать "в лоб", "топорно", код решающий ровно одну задачу.
Здравствуйте, Hobbes, Вы писали:
H>Здравствуйте, Maniacal, Вы писали:
M>>Тут достаточно просто: C = C++ — ООП — stdlib — C++ Exceptions — new/delete
H>Ты ещё шаблоны и overload-полиморфизм забыл.
Шаблоны — да, забыл. А инкапсуляция, наследование и полиморфизм это ООП.
N>>Основное отличие С от С++, это убогость и крайняя устарелость. Собственно не очень понятно, что про него ещё нужно знать. S>и почему же он тода еще жив S>pascal вот умер и Си живее всех живых
Нифига паскаль не умер.
Как использовался для обучения — так ип используется.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
BC>Посоветуйте пожалуйста курсы или книги про Си, которые демонстрируют его отличие от C++ — т.е материал по Си — не для начинающих, позволяющий освоить язык как "дополнительный", в том смысле, что его изучение будет не первым.
Книжек таких не встречал.
Можно взять просто книжку по С — Дейтела, например.
Вот: https://my-shop.ru/shop/books/1830518.html?b45=1_1
Или просто Библию Кернигана-Ритчи.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, BadCats, Вы писали:
BC>Посоветуйте пожалуйста курсы или книги про Си, которые демонстрируют его отличие от C++ — т.е материал по Си — не для начинающих, позволяющий освоить язык как "дополнительный", в том смысле, что его изучение будет не первым.
По С есть хорошие, а главное нетолстые книжки. Пролистать знакомое будет энергетически выгоднее, чем искать именно то, что ты хочешь имхо.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, BadCats, Вы писали:
BC>>Посоветуйте пожалуйста курсы или книги про Си, которые демонстрируют его отличие от C++ — т.е материал по Си — не для начинающих, позволяющий освоить язык как "дополнительный", в том смысле, что его изучение будет не первым.
N>Основное отличие С от С++, это убогость и крайняя устарелость.
минималистичность и полный контроль над железом.
N>Собственно не очень понятно, что про него ещё нужно знать.
то что на нём почти все mcu программируются?q А так же драйвера, системные утилиты и огромное количество кроссплатформенных opensource либ?