Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему драйвера пишут на C а не на C++?

Станислав Пушкин Ученик (20), на голосовании 8 лет назад
Голосование за лучший ответ
pandaren Профи (538) 8 лет назад
Потому что Си это магнитно-ориентированный язык четвертого поколения а Си++ это проприетарный драйвер для линукс подобных систем
Станислав ПушкинУченик (20) 8 лет назад
что такое магнитно-ориентированный язык? гугл меня не понимает
естественно не понимает ибо это псевдонаучный бред
Голова Робота Просветленный (36360) 8 лет назад
В драйверах не нужно ООП (объектно-ориентированное программирование), и другие возможности ++ не особо полезны.
Станислав ПушкинУченик (20) 8 лет назад
ну так что мешает этим просто не пользоваться?)
если не пользоваться возможностями C++ при написании на C++ то получится (почти) просто C. И в чем тогда сакральный смысл?
АнимедебилЗнаток (346) 8 лет назад
"В драйверах не нужно ООП"
То-то везде kernel object-ы да kernel object-ы с ручной реализаций таблиц виртуальных функций с помощью структур с указателями на функции.
Я всё думал — зачем? А это оказывается оттого, что ООП не нужно! Вот оно как!
Голова Робота Просветленный (36360) В обсуждении вопроса участвует Валерий Шестаков, он сказал, что пишет драйвера, и что ++ действительно не используется. Я драйвера никогда не писал. Может в некоторых случаях важна не какая попало таблица виртуальных функций (которую создаёт компилятор), а таблица определённого формата, которую надо реализовывать вручную для независимости от компилятора. PS: зачем воровать имя и аватарку? Это создаёт путаницу в обсуждении.
Анимедебил Знаток (346) 8 лет назад
Но ведь пишут. Правда, на C с классами, а не идиоматичном С++.
Shalafi Мудрец (15048) 8 лет назад
Плюсы примерно в 2 раза медленней, чем Си, а так же на плюсах программа больше места занимает. На драйверах же актуальна скорость и меньший размер...
Голова РоботаПросветленный (36360) 8 лет назад
Я посмотрел сравнение производительности языков. С++ действительно медленней. Насколько медленней - очень по-разному, зависит от задачи. Причина мне кажется в том, что в тестах используется разный исходный код; в коде для С++ используется библиотека шаблонов.
Shalafi Мудрец (15048) Основная производительность уходит на поддержку ООП. Скомпилируй с флагом -S код на си и на плюсах. Просто динамический массив памяти, заполнение и вывод. В Си подключается 2 библиотеки, в плюсах одна. И он всё равно больше. Сравни: http://pastebin.com/9JLcnYxq http://pastebin.com/RksHMN7w и это даже толком без ООП, когда начинается ООП, тогда там в С++ АД становиться...
Похожие вопросы