2010-02-24 19 views
8

Duplicar posible:
Why artificially limit your code to C?¿Por qué alguien usaría C en lugar de C++?

Me comenzó con el aprendizaje de C, pero luego saltó directamente en C++, simplemente porque es compatible con OO y también fue requerido para el trabajo posterior. Sin embargo, algunas compañías insisten en contratar personas con una experiencia de C particularmente fuerte, y he notado que esto se aplica especialmente a las empresas de desarrollo de controladores de hardware.

+0

http://stackoverflow.com/questions/649789/why-artificially-limit-your-code-to-c –

+16

¿Por qué alguien usaría un cuchillo en lugar de un procesador de alimentos? –

+0

@Neil Butterworth Cool, gracias. –

Respuesta

3

Podría ser simplemente que no tienen un compilador de C++ para la plataforma que están trabajando con ... Personalmente siempre usarían C++ con preferencia a C.

3

C es mucho más portátil - en el actual nivel de estandarización de C++, simplemente no se puede usar cuando la portabilidad es importante. También es muy difícil integrar el código C++ (de manera confiable y portátil) en un entorno C.

4

manipulación de cadenas en C es muy diferente de C++ código de serie típico. ¡Ciertamente no quisiera ninguna cadena de C++ cerca de mis controladores!

Más específicamente, en C++ bueno y moderno, no es necesario comprender los punteros y manejar los búferes a bajo nivel; pero estas son habilidades básicas y cruciales en el código de controlador del dispositivo.

Sí, es posible escribir buenos controladores en C++; pero ese C++ realmente se vería como C con algunas características adicionales. La mayor parte de la biblioteca C++ no tiene cabida en deviceland.

1

Muchos sistemas incrustados como microcontroladores, PLC, etc. utilizan C y no C++ porque no necesitan tener clases solo un bucle gigante con algunas funciones rociadas. Nada lujoso, pero suficiente para hacer el trabajo en un lenguaje de alto nivel. Como C es más familiar para las personas que el ensamblaje, funciona bien en ~ 98% de los casos.

-1

Creo que la razón es bastante simple, muchas empresas quieren un código de lectura eficiente. C es un lenguaje bastante fácil de entender y captar, y para muchos usos no hay razón para complicar el desarrollo y la continuidad del código agregando conceptos completamente nuevos (clases, polimorfismo, herencia, etc.) que los lenguajes OO hacen posible pero que pueden no ser necesarios.

Cuestiones relacionadas