Projet

Général

Profil

Actions

Macros et préprocesseur

Directives du préprocesseur gcc.

  1. Les macros ne devant plus être utilisées, DOIVENT générer un message lors de la compilation avec #pragma GCC poison

    Dans ce cas, la documentation doit indiquer le substitut à utiliser
    Pour la définition d’une valeur entière signée (int), un enum DOIT être utilisé.

  2. Définition conditionnel : Utiliser une forme évitant les répétitions.

  3. Macros #warning et #error : Utilisées pour afficher des avertissements ou des erreurs lors de la compilation.

    N’est pas documenté dans Doxygen.

  4. Un #define est utilisé pour remplacer une valeur au moment de la compilation

    Pour la définition d'une valeur « integer », un enum DOIT être utilisé.

Exemple

/**
* @brief MACRO1
* @deprecated Utiliser NEWMACRO à la place
* @since Version x.x.xx
*/
#define MACRO1 43
#pragma GCC poison MACRO1

/** @brief Défini selon la macro *FEATURE_ONE* */
const char BLUE =
  #if defined (FEATURE_ONE)
    '1'
  #else
    '0'
  #endif
;

#if !defined (usart_AVR)
    #error "__FILE_NAME__ n'est pas supporté sur ce AVR !"
#endif

/** @brief USART1 */
#define USART1 REG1

Justification

Linux kernel coding style
GNU Coding Standards
Embedded C Coding Standard
• Correspondance avec la fiche technique (datasheet)

Mis à jour par Patrice Nadeau il y a environ un mois · 20 révisions