151 votes

Pourquoi utiliser le C plutôt que le C++ ?

Bien que les gens semblent aimer se plaindre à propos du C++, je n'ai pas pu trouver beaucoup d'éléments expliquant pourquoi vous voudriez choisir le C plutôt que le C++. Le C ne semble pas recevoir autant de critiques et si le C++ a tous ces problèmes, pourquoi ne pas se limiter au sous-ensemble C ? Quelles sont vos réflexions/expériences ?

3voto

Chris Points 374

Je dirais que le C permet de mieux contrôler l'optimisation et l'efficacité que le C++ et qu'il est donc utile dans les situations où la mémoire et les autres ressources sont limitées et où chaque optimisation est utile. Bien entendu, il est également moins encombrant.

2voto

Crashworks Points 22920

Il y a aussi l'approche adoptée par certains magasins qui utilisent un peu de des fonctionnalités du C++ à la manière du C, mais en évitant celles qui sont répréhensibles. Par exemple, l'utilisation des classes, des méthodes de classe et de la surcharge de fonctions (qui sont généralement faciles à gérer même pour les irréductibles du C), mais pas la STL, les opérateurs de flux et Boost (qui sont plus difficiles à apprendre et peuvent avoir de mauvaises caractéristiques de mémoire).

1voto

Electrons_Ahoy Points 6972

Parce que vous écrivez pour un système où les ressources sont limitées (comme un système embarqué, ou une sorte de code "bare metal" comme un noyau) et que vous voulez avoir le moins de surcharge possible.

Il y a une raison pour laquelle la plupart des systèmes embarqués n'ont pas de compilateur C++ - ce n'est pas que les gens n'en veulent pas, c'est que faire tenir du code C++ dans un espace aussi réduit est une tâche quasi impossible.

1voto

Vardhan Points 2156

Ce dont le C avait besoin était un meilleur préprocesseur. cfront en était un et ainsi naquit c++

J'utiliserais le C, où le "c++ en tant que préprocesseur" ne serait pas acceptable.

Je suis presque sûr qu'il se trouve au bas de n'importe quelle bibliothèque/framework/toolkit c++ bien écrit, vous trouverez les dirty-old-c ( ou les static casts, ce qui revient au même )

0voto

Ismael Points 2339
  • Jusqu'à il y a quelques années, les compilateurs C++ existants manquaient de fonctionnalités importantes, ou le support était médiocre et les fonctionnalités supportées variaient énormément d'un compilateur à l'autre, ce qui rendait difficile l'écriture d'applications portables.
  • En raison de l'absence de dénomination standard des symboles, il est difficile pour les autres langages/applications de supporter directement les classes C++.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X