C ++, как следует из названия и, как вы сказали в своем вопросе, является улучшением C. Это значительное улучшение. (И я использую термин «улучшение», чтобы ссылаться на функции, а не на функционирование.) Однако в расширении важно то, что это означает рост. C ++ обычно подходит для гораздо больших программ. Приложения, правда. Это высокопроизводительный язык, но он большой.
C, с другой стороны, используется для программирования ядра и драйвера по определенной причине. Он старый (древний?), Маленький, и, если вы умный, примерно так же быстро, как вы можете без написания ассемблера самостоятельно. Компромисс, очевидно, это особенности. В C не так много хороших концепций, таких как классы и шаблоны, которые программисты C ++, такие как я, считают само собой разумеющимся (да, совершенно виновным).
Итак, чтобы ответить на ваш вопрос более прямо, большинство моих крупных высокопроизводительных проектов написаны на C ++. Если я работаю над чем-то вроде драйвера или встроенной системы, я ожидаю использовать C.