Dupliqué possible: strong>
Pourquoi limiter artificiellement votre code à C? P> blockQuote>J'ai commencé avec apprendre C, mais j'ai ensuite sauté directement dans C ++ simplement parce qu'il soutient OO et était également requis pour un travail ultérieur. Cependant, certaines entreprises insistent sur l'emploi des personnes avec une expérience C particulièrement forte - et j'ai remarqué que cela s'applique particulièrement aux sociétés de développement du pilote matériel. P>
5 Réponses :
Il pourrait simplement s'agir qu'ils n'ont pas de compilateur C ++ pour la plate-forme qu'ils travaillent ... personnellement, j'utiliserais toujours C ++ de préférence à c. P>
C est beaucoup plus portable - sous le niveau actuel de normalisation de C ++, il ne peut tout simplement pas être utilisé lorsque la portabilité est importante. Il est également très difficile de intégrer le code C ++ (de manière fiable et portable) dans un environnement C. p>
C chaîne de manutention est très em> différent du code de chaîne typique C ++. Certainement je ne voudrais aucune chaîne C ++ près de mes pilotes! P>
Plus spécifiquement, en bon état, moderne C ++, vous n'avez pas vraiment à comprendre les pointeurs et à manipuler des tampons à faible niveau; Mais ce sont des compétences de base et cruciales dans le code des pilotes de périphérique. P>
Oui, il est possible d'écrire de bons pilotes en C ++; Mais que C ++ ressemblerait vraiment à C avec quelques fonctionnalités supplémentaires. La majeure partie de la bibliothèque C ++ n'a plus de place en DeviceLand. P>
Beaucoup de systèmes embarqués tels que microcontrôleurs, automates, etc. utilisent C et non c ++ car ils n'ont pas besoin d'avoir des classes une seule boucle géante avec certaines fonctions pincées. Rien de fantaisie mais assez pour faire le travail dans une langue de niveau supérieur. Puisque C est plus familier aux gens que l'assemblage, cela fonctionne bien dans environ 98% des cas. P>
Je pense que la raison est assez simple, beaucoup d'entreprises veulent un code lisible efficace. C est une langue assez facile à comprendre et à saisir, et à de nombreuses utilisations, il n'y a aucune raison de compliquer le développement et la continuité du code en ajoutant de nouveaux concepts (classes, polymorphes, héritage, etc.) que les langues OO rendent possible mais peuvent ne pas être nécessaires. p>
Stackoverflow.com/questions/649789 / ...
Pourquoi quelqu'un utiliserait-il un couteau au lieu d'un robot culinaire?
@Neil Butterworth Cool, merci.
Ma question semble être un duplicata de: Stackoverflow.com/Questtions/482574/...
C est plus facile à mettre en œuvre et à "coller" avec des bibliothèques héritées. D'autres langues ont généralement une interface C. Certains environnements sont également limités à C; par exemple, développer un pilote de périphérique Linux. Une approche plus compliquée est possible (un petit pilote C parlant à un C ++ ou même Java, Python, quel que soit le démon de mode utilisateur), mais implique une performance frappée et il y a toujours le module C. Un runtime C ++ est également plus difficile à développer, donc pour des périphériques embarqués, par exemple, il est également facile de porter un compilateur C que celui d'un compilateur C ++.
Est-ce que cette "chaîne" ou "forte"?
Notez que vous pouvez programmer de manière orientée objet dans C.