c - programa - software para gestion de eventos
¿Cuál es la mejor manera de planificar y organizar el desarrollo de una aplicación en C? (4)
Solo he tenido que codificar en C varias veces, y parece que cada vez que lo hago, se convierte en una bestia inmanejable.
He realizado la mayor parte de mi programación en C # y .Net, así que estoy muy acostumbrado a la arquitectura de estilo de clase, pero parece que no entiendo la organización en las aplicaciones C. ¿Debo poner las funciones que están relacionadas en un determinado archivo, poner las definiciones de funciones en un archivo y el procesamiento en otro, etc. ¿Hay algún buen recurso por ahí sobre este tema?
Ver también: ¿ Luchando con C proveniente de tierra orientada a objetos?
la antigua forma de " programación estructurada " de codificar programas C es modularizarlos en archivos. En lugar de tener código en objetos, asegúrese de poner todo el código relacionado en archivos individuales.
Si piensas en un archivo como el objeto de un pobre, estarás allí principalmente organizando tus aplicaciones C como lo haces con tus C #.
C Interfaces e implementaciones de David Hanson explica un buen esquema de organización utilizable en el primer capítulo (si mal no recuerdo) y lo muestra en uso en los restantes que desarrollan bibliotecas importantes.
Aquí hay una analogía que podría ayudarte:
Una clase es una estructura de datos de algún tipo y un conjunto de funciones para acceder y manipular esos datos. El lenguaje c
no proporciona ningún azúcar sintáctico para organizar esta relación por usted, pero puede construir su código alrededor de esta idea. Entonces, solo hazlo: diseña tu proyecto en torno a un montón de "clases".
La organización del código generalmente toma una de dos formas:
- Cada función obtiene un archivo de encabezado (interfaz) con una extensión
.h
y un archivo de implementación con una extensión.c
- Cada "clase" (es decir, un conjunto de funciones relacionadas) obtiene un archivo de cabecera y un archivo de implementación.
Entonces, ya sabes cómo hacer esto ...
Dado que tengo experiencia en C #, puede que le interesen las respuestas a mi pregunta SO: " Objeto-Orientación en C ". Si le interesan, puede ser útil echar un vistazo a las respuestas a la pregunta relacionada: " ¿Se puede escribir código orientado a objetos en c? ". Si planea usar un esquema como cualquiera de los mencionados en las respuestas a las preguntas antes mencionadas, tenga en cuenta que lo más importante es su diseño, no el azúcar sintáctico que puede / no hacer que se vea bonito.