Macros et préprocesseur » Historique » Révision 6
« Précédent |
Révision 6/17
(diff)
| Suivant »
Patrice Nadeau, 2024-03-09 11:48
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é. -
ifdef
/ifndef
: 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 compilationPour 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
const char BLUE =
#if ENABLED(FEATURE_ONE)
'1'
#else
'0'
#endif
;
#ifndef usart_AVR
#error "__FILE_NAME__ n'est pas supporté sur ce AVR !"
#endif
#ifndef test
#warning "test n'est pas défini!"
#endif
/**
* @name Nom des registres
*/
/** @{ */
/** @brief USART1 */
#define USART1 REG1
/** @brief USART2 */
#define USART2 REG2
/** @} */
USART1 = 0x0F;
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 10 mois · 6 révisions