Macros et préprocesseur » Historique » Révision 15
« Précédent |
Révision 15/17
(diff)
| Suivant »
Patrice Nadeau, 2024-03-09 12:07
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
#if !defined (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 · 15 révisions