¿Cómo pensar en C?

Dos características de C ponen a las personas en problemas. El primero son los punteros.

Para obtener realmente punteros, debe comprender algo sobre la arquitectura subyacente de la máquina. Si nada más, obtenga algunos antecedentes. Vea si puede encontrar una clase sobre organización de máquinas, arquitectura de máquinas, organización de máquinas y similares. Siempre hay un curso de división superior como este ofrecido en el programa CS / EE de cualquier universidad. Encuentra uno gratis en línea.

El segundo es la asignación dinámica de memoria. malloc () y sus amigos son la ruina de muchos programadores. Es simple en principio, pero realmente difícil de hacer bien en la práctica.

C no es un lenguaje recolectado de basura; siempre debes limpiar después de ti mismo. En programas de cualquier complejidad, esta limpieza (en todos los escenarios y todas las condiciones) representa una gran parte de esa complejidad.

Práctica. Y solo practica. Los mejores programadores de C son los que han escrito una gran cantidad de código. Hay ciertas prácticas que lo convertirán en un mejor programador, pero la única forma en que las aprenderá es cayendo en las trampas que no las sigue (o, a veces, observa cómo caen otras personas).

Otros idiomas tienen estándares que puede seguir que, en general, lo protegerán de los errores más grandes. Pero C no intenta hacerlo. Entonces, la única forma de tener éxito en C es ser disciplinado y solo hacer las cosas sensatas. Y qué cosas son sensatas se aprende solo por experiencia.

More Interesting

¿Qué papel juegan los sistemas integrados en la inteligencia artificial?

¿Cuáles son los pros y los contras del desarrollo basado en pruebas considerando solo el software integrado?

¿Cuáles son algunas ideas de proyectos creativos con el microcontrolador 8051?

¿Cuáles son los beneficios de usar microcontroladores?

¿Por qué la programación de sistemas integrados parece más difícil que la programación de sistemas?

¿Cuál es el nivel de precisión del uso de la visión por computadora para detectar el movimiento desde una plataforma en movimiento? ¿Y qué tan difícil es usar la biblioteca OpenCV y crear una aplicación de Android que procese video infrarrojo sobre la marcha y genere alertas cuando detecte movimiento? ¿cualquier otra sugerencia?

¿Cuál es el tamaño de las variables integrales en un controlador de 8 bits, un controlador de 16 bits y un controlador de 32 bits, y depende totalmente de la arquitectura MCU o la arquitectura del compilador?

¿Cuál es la diferencia entre arduino y pic?

¿Qué es un sistema embebido?

¿Qué especialización se prefiere para un ingeniero de hardware en Google? ¿VLSI, sistemas embebidos, procesamiento de señales o sistemas de comunicación?

¿Cuál es el mejor libro para incrustar?

¿Hay un sabor de Linux integrado con soporte KVM?

¿Qué es 'Internet de las cosas', qué lenguaje de programación se requiere para esto?

¿Qué es el temporizador de vigilancia en el sistema integrado?

¿Cómo fue trabajar en su primer proyecto de sistema integrado?