Quiero aprender el lenguaje C en LINUX, ¿cómo empezar?
1. Herramientas
“Si un público quiere hacer bien su trabajo, primero debe afilar sus herramientas”. La programación es un trabajo muy práctico. En su futuro estudio o trabajo, a menudo tendrá que lidiar con las siguientes herramientas. A continuación se enumeran el software y las herramientas que se utilizan comúnmente para aprender a programar en lenguaje C.
1. Sistema operativo
Es muy conveniente aprender C en un sistema UNIX o Linux, así que elija un sistema operativo UNIX o Linux antes de comenzar su viaje de aprendizaje. Actualmente está disponible. Los sistemas UNIX o Linux gratuitos para uso personal incluyen FreeBSD, RedHat Linux, SUSE Linux, etc., y también se proporcionan muchas herramientas prácticas en el paquete de instalación, como: gcc, make, etc.
Si ha estado usando Windows y no tiene máquinas adicionales a su alrededor para instalar UNIX, puede usar VMware para instalar un sistema virtual a través de VMware.
2. Herramientas de compilación
En la actualidad, la mayoría de los sistemas Unix o Lnux proporcionan compiladores CC o GCC. El formato de comando cc más simple es el siguiente:
cc -. o hola hola.c
Escriba el código anterior en un entorno shell Unix y el programa hello.c se compilará en el archivo ejecutable hola.
3. Herramientas de creación
Como GNU make, System V make y Berkeley make son herramientas básicas que se utilizan para organizar el proceso de compilación de la aplicación, pero existen diferencias entre cada herramienta de creación. .
La mayoría de los programas UNIX y Linux se compilan ejecutando make.
La herramienta make leerá un archivo que contiene instrucciones (el nombre de este archivo suele ser makefile o Makefile, pero nos referiremos a él como "makefile" en el siguiente artículo) y realizará varias operaciones para compilar el programa.
4. Herramientas de depuración
La herramienta de depuración más simple: agregue declaraciones impresas a su programa. Una vez que tenga una cierta comprensión del mecanismo de ejecución del programa, podrá usarlo de manera más efectiva. Las herramientas lo ayudan a depurar, por supuesto que debe aprender a usar estas herramientas, como: dbx, gdb, etc.
También existen algunas herramientas de memoria que pueden ayudarte a encontrar problemas como pérdidas de memoria o desbordamientos del búfer, como: memwatch, yamd, etc.
5. Otras herramientas
1)vi o vim
Editor de texto bajo Unix. Se basa principalmente en un montón de comandos para editar archivos de texto. Para aprender a programar en Unix, es mejor estar familiarizado y utilizar con habilidad el editor vi.
Por supuesto, en el trabajo real, es posible que necesites un entorno de codificación integrado o una potente herramienta de edición gráfica.
Proporcione un manual en línea de vim chino: /manual... amp;page=index.html para obtener información detallada de la biblioteca ANSI C.
3. Superar las dificultades de C
1) Declaración en lenguaje C:
La declaración en lenguaje C realmente me asusta, es relativamente oscura y difícil de entender. entender, y la declaración La forma es similar a la forma utilizada. Por ejemplo, incluso muchos programadores que han estado familiarizados con C durante muchos años no pueden reconocer la siguiente declaración de un vistazo:
char * const * (*next)();
Entonces No existe un buen método de memoria o una regla para descubrirlo. No parece existir. Si lo hubiera, no sería una tortura. Pero puedes echar un vistazo al contenido del Capítulo 3 de "Programación experta en C", tal vez obtengas algo.
Solo puedes aprender más y practicar más. Como dice el refrán, la práctica hace la perfección. Espero que este problema no deje una sombra en tu mente.
2) Matrices y punteros:
La relación entre matrices y punteros no se especifica en detalle en el estándar, y muchos libros de introducción a C no proporcionan ninguna información sobre este tema. Da una explicación muy detallada, por lo que puede causar muchos malentendidos.
Para esta pregunta, puede consultar la Sección 4.5 de "Defectos y trampas de C" y los Capítulos 4, 9 y 10 de "Programación experta en C". Creo que si comprende el contenido aquí a fondo, No lo volverás a hacer en el futuro. Confundido por esta pregunta.
3) Punteros y memoria:
Si escribes un programa más grande en el futuro, es posible que este problema sea tu mayor preocupación y que consuma la mayor cantidad de tiempo de depuración. asuntos.
4) Problema con la versión C:
Debes tener especial cuidado con este problema. Es mejor no mezclar las características de diferentes versiones de C en tu programa, de lo contrario. te traerá una pregunta muy confusa. Si debes usarlo, será mejor que sepas lo que estás haciendo.
También hay otras áreas difíciles y propensas a errores en C, y puedes aprender de algunas experiencias previas. El siguiente es un enlace a una sección de preguntas frecuentes. Creo que este documento tiene las soluciones para la mayoría de los problemas que necesita.
/
4. Programación en entorno UNIX
Después de aprender el contenido anterior, creo que puedes programar en entorno UNIX. Sin embargo, es posible que necesite tener un poco de comprensión de la teoría del sistema operativo para que sea más fácil de aprender.
Al programar en el entorno Unix, debe centrarse en las dos partes principales de IO y proceso.
"Programación avanzada en el entorno Unix" tiene una discusión muy detallada y profunda sobre la programación del entorno Unix, y hay una gran cantidad de programas de ejemplo prácticos en el libro, pero puede llevar varios meses estudiarlos. Lo mordió con cuidado.
Tener una comprensión sólida del contenido anterior no significa que su camino de aprendizaje del lenguaje C haya finalizado. Al contrario, acaba de comenzar. En el futuro, deberá utilizar los conocimientos adquiridos para resolver una gran cantidad de problemas prácticos diferentes. En el proceso de práctica continua, profundizará aún más su comprensión de C. Una vez que tenga la base anterior, descubrirá que rápidamente dominará otros conocimientos necesarios en el proceso de práctica.