Язык С действительно хуже по возможностям. Как только у вас в проекте появляются данные, которые нельзя описать каким либо одним типом (естественно самопальной структурой). Так как эти данные могут в процессе выполнения программы меняться, то у вас возникает сильная головная боль. В С++ всё построено вокруг объектов, вы можете в процессе выполнения программы создать новый тип данных и отнаследовать в него предыдущий объект. Плюс в объектах есть методы. Например разница в управлении ножкой порта девайса: С - {
/*
* пример самодельных функций
*/
portb(1,true);
portb(2,false);
}
C++ -
{
errorlamp.on();
onePump.off();
}
А если ножек сто, то начинается создание полей с дефайнами. А если нужно ножкой "мигать" и у вас С, то это отдельная функция и нужно хранить переменные с значением состояния ножки и того чего мы от неё хотим, пока отрабатывает таймер до прерывания. А если мигать нужно ещё одной ножкой, то ещё набор переменных. В С++ просто добавляем метод в тип описывающий ножку порта и они все научатся "мигать".
Пользователь решил продолжить мысль 17 Апреля 2012, 11:37:43:
Вообще в С код получается более быстрый и менее прожорливый к памяти, но только при условии что вы настолько шарите в требуемой задаче, что можете своей головой всё оптимизировать лучше чем компилятор.
Если изучите С++, то автоматически будете знать С, так как С++ это усложнённая версия С.
Если же изучите С, то потом сломаете мозг, так как только от использования printf(); и getchar(); Нужно будет отвыкать. (Для тех кто скажет, что я привёл в пример функции для консоли - знаю, но покажите книгу, где их не приводят в пример. Все книги по С учат в консоль выводить printf("Hello World\n");
)
P.S
Пробежался по Гуглу в поисках примера печати Hello World на QT или GTK+ под С... И ничего не нашёл.