LINUX.ORG.RU

C против C++


0

0

Народ - можт кто обьяснит - почему драйвер который шел с сетевой картой был написан на С а не на C++? - в чем приимущество С перед С++? Ведь если его нет - то почему С еще не вымер?(ведь прогу проще написать на С++ даже с точки зрения эргономичности - cout напимер короче printf(меньше букв)?

anonymous

Ну, блин, вопросики!!! С++ предназначен для программирования на высоком уровне, т.е. для построения классов и темплейтов, для наследования и т.п. При этом объектный код программы на С++ достаточно велик. А обычный С используется, в основном, но не всегда, для написания маленьких програмок, отдельных функций или библиотек, если такая реализация на ассемблере достаточно сложна. При этом объектный код получается более сжатым. В общем, если ты соберешься писать какой-нибудь device driver, или свою ф-цию, например open, то здесь создание классов только усложняет дело и увеличивает конечный размер программы. Для того, чтобы написать обработчик, например восьмидесятого прерывания совсем не обязательно создавать для него классы, сложные структуры данных, а можно обойтись лишь маленькой функцией, которая будет получать какие-нибудь данные и что-нибудь с ними делать. Код получается меньше, проще и быстрее. А вот, если захочется работать с базами данных или еще чем-нибудь супер наворочанным, не требующем большой скорости работы и занятия маленького объема на диске - используй С++, гораздо приятнее. Кстати Quake был написан на чистейшем С, с использованием классов лишь в том месте, где реализуется обмен данными между сервером и клиентами игры по сети, да и то, потому что эти классы были уже заранее созданы и их надо было только использовать.

Akan
()

Thanks! (Ну блин не просекаю я ничего в программировании!..) Все понял.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.