Macros et préprocesseur¶
Directives du préprocesseur gcc.
Règles¶
- Comportent au maximum 31 caractères
- Commence par une lettre
- Si plusieurs mots sont utilisés, ils sont séparées par des traits de soulignement
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é.Définition conditionnel : Utiliser une forme évitant les répétitions.
Macros #warning et #error : Utilisées pour afficher des avertissements ou des erreurs lors de la compilation.
N’est pas documenté dans Doxygen.
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 8 mois · 17 révisions