Colección de citas famosas - Slogan de motivación - ¿Cuándo empezaste a aprender C?

¿Cuándo empezaste a aprender C?

En cualquier momento, cuando estés listo. El lenguaje C te llevará a un mundo de programación real.

¿Por qué deberíamos aprender y utilizar el lenguaje C?

En comparación con C++, una de las ventajas del lenguaje C es el principio de mínima sorpresa. Uno es uno, dos es uno, y no se producirán en secreto algunos productos redundantes inexplicables. Tome C ++ como ejemplo, como un prototipo de función Void PasswithClassValue (clase de cono CLS parámetro 1). Los amigos que conocen C++ sabrán que si no implementa el constructor de copia de Coneclass, el compilador le ayudará amablemente a implementar uno. Y al llamar a esta función PassWithClassValue, se llama en secreto al constructor de copia para generar un objeto temporal que se pasará como parámetro. Para algunos casos, como escribir un sistema operativo, se debe optimizar el rendimiento. Estas cosas moralistas son muy malas.

El lenguaje C en sí solo proporciona las características de lenguaje necesarias, y otras funciones complejas, como el procesamiento de archivos y los cálculos matemáticos, se proporcionan en forma de funciones de biblioteca. Incluso las funciones "imprescindibles" como malloc y free se proporcionan en forma de funciones de biblioteca estándar en lugar de aparecer como el núcleo del lenguaje C. En el gran y famoso K&; que lo abarca todo, como se mencionó al comienzo de R, for en realidad se puede completar con while, pero for se puede escribir de manera más concisa y el significado implícito de for no es necesario en el lenguaje C. Además, entre otros lenguajes de programación, se puede decir que Lua heredó el concepto de diseño simple del lenguaje C, e incluso se ha negado a agregar la palabra clave casi indispensable continuar. El problema de continuar se ha mencionado en la lista de correo y en la wiki de Lua. Los mantenedores del lenguaje Lua creen que continuar no es necesario para Lua y no considerarán agregar esta palabra clave en versiones posteriores. Este concepto conciso también hace que el lenguaje C sea particularmente excelente en términos de portabilidad y portabilidad, y también hace que muchos sistemas integrados todavía utilicen el lenguaje C como lenguaje de programación principal.

El lenguaje Java tiene un lema: "Escribe una vez, ejecuta en cualquier lugar", que es un truco multiplataforma. De hecho, el lenguaje C casi ha logrado el objetivo de "compilar una vez, compilar en todas partes" desde sus inicios. Después de que ANSI unificó el estándar del lenguaje C (llamado C89) en 1989, siempre que el compilador en una plataforma específica implemente completamente el estándar C89 y su código no utilice algunas extensiones especiales (GCC y Microsoft tienen sus propias extensiones específicas del compilador) Entonces definitivamente se compilará el código y luego se implementarán las funciones relacionadas con el sistema operativo. Lua se puede utilizar como ejemplo. El propio Lua sigue completamente el estándar C89 y no utiliza ninguna extensión específica. Esto también garantiza que las plataformas con compiladores en lenguaje C puedan compilar y utilizar Lua. Lo que es muy interesante es que las plataformas de hardware que pueden compilar y ejecutar el lenguaje C se pueden clasificar de la A a la Z.

El lenguaje C es también uno de los pocos lenguajes ampliamente utilizados. Por ejemplo, escribir un sistema operativo es un problema difícil que sólo C++ y el lenguaje ensamblador pueden resolver. El lenguaje C se puede utilizar para escribir software del lado del servidor como Apache y Nginx, así como programas GUI como GTK. Las primeras versiones de la mayoría de los lenguajes de programación se implementaron en C. Con la ayuda del mencionado "escribir una vez, compilar en cualquier lugar", la portabilidad de estos lenguajes de programación está garantizada al máximo. En el campo del desarrollo web, el lenguaje C tiene relativamente pocas aplicaciones, lo que también es el resultado de compensaciones. El desarrollo web requiere el uso de lenguajes dinámicos como PHP, Ruby y Python, que pueden iniciarse y modificarse rápidamente para satisfacer al máximo las necesidades cambiantes de los usuarios. Esta es también la debilidad del lenguaje C. Si los campos de aplicación de los lenguajes de programación están organizados aproximadamente desde el hardware hasta el software de administración y los programas web de abajo hacia arriba, los campos aplicables del lenguaje C son las partes inferiores cercanas al hardware, mientras que los lenguajes emergentes están más enfocados. sobre gestión de alto nivel o desarrollo web. Se dice que está más cerca del usuario final. El popular modelo de desarrollo híbrido ahora es usar el lenguaje C para escribir el código parcial subyacente de alto rendimiento o el código del servidor back-end, y usar lenguajes dinámicos como Python para el desarrollo front-end para aprovechar al máximo sus respectivos ventajas.

Cuando se trata de las deficiencias del lenguaje C, a menudo se trata de la falta de tal o cual característica. Por ejemplo, algunas personas sugirieron agregar GC, otras sugirieron agregar soporte paralelo o concurrente y algunas personas mencionaron que no existe una estrategia de excepción completa similar a C++. Algunas de estas características se pueden lograr mediante la introducción de bibliotecas de terceros, pero el concepto de diseño del lenguaje C en realidad determina que no será tan "poderoso" como C ++. Incluso si se lanzan algunas funciones esperadas, todavía habrá una situación en la que a algunas personas les gustará y a otras no. Las funciones actuales son suficientes para el campo de aplicación del lenguaje C. Otras funciones se pueden realizar a través de lenguajes de programación específicos e interactuar con programas escritos en lenguaje C a través de C API. Es imposible que cualquier artesano utilice una sola herramienta para completar el trabajo. Una combinación de diferentes herramientas puede completar la tarea más rápido y mejor.

Hablando de C api, primero presentémosla brevemente. Sabemos que la API del sistema operativo Windows es buena y la API del sistema Linux es buena, pero aún queremos escribir módulos de extensión para Ruby y Python. La definición de función en C es la única opción. El lenguaje C es como una capa intermedia o pegamento.

Si desea combinar módulos funcionales implementados en diferentes lenguajes de programación, el lenguaje C es la mejor opción.

Habiendo dicho tantos beneficios sobre el lenguaje C, depende de usted juzgar si es adecuado aprender el lenguaje C. Por ejemplo, si desea realizar un proyecto integrado, o necesita desarrollar un servidor o escribir un componente relacionado con el rendimiento, el lenguaje C es una buena opción. Además, también puede utilizar intencionalmente el modo de pensamiento del lenguaje C en el proceso de uso de C ++ y aprender de las ideas de diseño claras y concisas del lenguaje C, lo que mejorará enormemente su nivel de programación.