- L’auteur présente son style personnel de programmation en C à la fin de 2023, en mettant en avant les changements importants et les améliorations apportées à ses techniques.
- Il a commencé à utiliser des noms courts pour les types primitifs, estimant que cela améliore la clarté et rend les revues de code plus agréables.
- Il donne des exemples de nouvelles conventions de nommage pour les types primitifs, comme
typedef uint8_t u8; et typedef char16_t c16;.
- Il a adopté les minuscules pour les macros qui ressemblent à des fonctions, car elles sont plus faciles à lire et n’ont pas les mêmes problèmes d’espace de noms que d’autres définitions de macros.
- Il a cessé d’utiliser
const, car cela ne joue selon lui aucun rôle concret dans l’optimisation et ne permet pas de détecter les erreurs. Il considère que son inclusion dans le C était une erreur.
- Il rejette les chaînes terminées par un caractère nul et adopte un type de chaîne de base, qu’il juge plus productif.
- Il préfère retourner des structures plutôt que d’utiliser des paramètres de sortie, ce qui permet de renvoyer efficacement plusieurs valeurs.
- Il préfère initialiser par affectation plutôt que via des initialiseurs, à l’exception de l’initialiseur traditionnel de mise à zéro.
- Il préfère
__attribute à __attribute__, jugeant cette dernière forme excessive et inutile.
- Pour la programmation système Win32, il recommande d’écrire manuellement les prototypes à l’aide de types personnalisés afin de réduire les temps de compilation, d’assainir l’espace de noms et d’interfacer plus proprement le programme.
- Il fournit des exemples de style de code dans de petits programmes comme
wordhist.c et asmint.c.
1 commentaires
Discussion Hacker News
ALL_CAPSpour les constantes fait débat, certains affirmant que cela devrait être réservé aux macros du préprocesseur.u8oui32au lieu deuint8_touint32_t, semble pouvoir semer la confusion chez d’autres développeurs.floatfait 32 bits etdouble64 bits, ce qui pourrait potentiellement poser problème.structsplutôt que pour les out-parameters, affirmant que cela complique la composition des fonctions et entraîne une prolifération des types.