A pesar de haber leído K & R, y teniendo clases C siquiera se enseñan, me encuentro vergonzosamente incapaz de comprender plenamente lo que se podría llamar "moderna" C¿Dónde puedo encontrar recursos sobre la programación C "moderna"?
Parece que hay muchas convenciones no escritas en la programación moderna que , hasta donde yo sé, no están documentados en ningún lado.
Tome, por ejemplo, el código fuente SQLite. En lo que encuentro por ejemplo:
SQLITE_API int sqlite3_close(sqlite3 *);
¿Qué representa para SQLITE_API
? ¿Cómo es esto incluso sintácticamente correcto?
O esto:
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
¿Hay una convención aceptada en algún lugar cuando el prefijo macros con guiones? A veces veo macros con el prefijo con dos guiones bajos.
O qué tal el uso de tipos de tamaño fijo, como uint32
y así sucesivamente. ¿Cuándo debería uno usar esta práctica, y cuándo no? ¿Qué pasa con el tipo new-ish bool
, cuando debería ser preferible a los simples?
Estas son algunas de las preguntas que planteo cuando leo el código fuente de otras personas. ¿Hay alguna referencia en alguna parte que pueda ayudarme a responder estas preguntas?
Lea http://c-faq.com/ Luego obtenga el estándar ISO C99 y léalo. – cnicutar
Estos también se conocen como Ansi C, también se pueden buscar estándares de codificación GNU o algo muy específico sería el estilo de codificación del kernel de Linux. Berkeley también tiene algunas pautas de codificación. Todos ellos tienen pros y contras. Además, hay mucho más por ahí. –