Projet

Général

Profil

Actions

Wiki » Historique » Révision 186

« Précédent | Révision 186/213 (diff) | Suivant »
Patrice Nadeau, 2026-01-18 20:01


Règles de codage C

Le langage C utilisé avec le compilateur GCC :

  • Standard C99 (-std=c99)
  • Extensions GNU
    • attribute((deprecated)) (-Wdeprecated-declaration)
    • attribute((noreturn))
    • #pragma GCC message ""
    • #pragma GCC warning ""
    • #pragma GCC error ""

Identifiants

  1. Ne DOIT PAS contenir plus de 31 caractères

    ANSI standards

    • a @ z
    • A @ Z
    • 0 @ 9
    • Trait de soulignement (__)
  2. En anglais américain :
    • Lettres
      • Macros :
        • Majuscules et minuscules

          La parie principale DOIT être en majuscule

      • Fonctions, variables, énumérations, structures, définition de type :
        • Minuscules
    • Nombre
    • Commence par une lettre
    • Si plusieurs mots sont utilisés, ils DOIVENT être séparées par des traits de soulignement

Fichiers

Structure des répertoires et fichiers

Format selon la commande tree --charset ascii

.
|-- AUTHORS : Fichier contenant les noms et courriels des auteurs
|-- bin : Répertoire contenant le fichier exécutable et les librairies compilées
|-- ChangeLog : Fichier des changements
|-- config.h : Fichier optionel contenant les macros communes au programme dans son ensemble (-imacros)
|-- COPYING : Fichier de licence (standard GNU)
|-- docs : Répertoire de la documentation (.pdf)
|-- include : Répertoire des fichiers d’en-tête (.h)
|-- INSTALL
|-- lib : Répertoire des libraires externes (liens symboliques)
|-- Makefile.in : Fichier d'informations spécifiques du projet pour le Makefile
|-- NEWS :
|-- obj : Répertoire contenant les objets (.o)
|-- README : Fichier d'informations du projet, en format markdown
`-- src : Répertoire des fichiers sources (.c)

Fichiers sources

  1. Nom du fichier :
    • Un préfixe en anglais de 8 caractères maximum pouvant contenir :
      • Lettres minuscule
      • Chiffres
      • Trait de soulignement
    • DOIT contenir un des suffixe suivants :
      • .h : entête
      • .c : sources
  2. Contenus
    • Section Doxygen :
      1. @file : Le nom du fichier
      2. @brief: Une brève description
      3. @version: Le numéro de version
      4. @date: La date de dernière modification
      5. @author: Une liste des participant(e)s et leur courriel
      6. @copyright: La liste des années et participant(e)s
    • Les fichiers d’entête contiennent en plus
      1. Une définition macro pour éviter de ré-inclure le fichier (https://fr.wikipedia.org/wiki/Include_guard).

Exemple

#ifndef _test_h
#define _test_h


[[Style]]

## Commentaires
1. Précède l’élément à documenté, avec la même indentation
1. En minuscules et commence par une majuscule
1. Phrase complète en français
1. Sur une ou plusieurs lignes
1. De style
    * C (/*... */) : Commentaires du code
    * Javadoc (/** */, @) : Commentaires devant apparaître dans la documentation (Doxygen)
        > La documentation est partie intégrante du code
        1. Les « décorations » (gras, italique, etc.) sont faites avec la syntaxe Markdown
            * Italique : `∗` ou `_`
            * Gras : `∗∗` ou `__`
        1. Les commentaires suivants peuvent aussi être utilisés
            * `@todo`
            * `@bug`

[[Identifiants]]

[[Macros et préprocesseur]]

[[Énumérations]]

[[Typedef]]

[[Variables]]

[[Structures]]

[[Fonctions]]

[[Librairies]]

[[Atmel AVR]]

Mis à jour par Patrice Nadeau il y a un jour · 186 révisions