Qu'est-ce que Macro (#define) ?

En C, remplacement de texte auquel #define donne un nom. Il existe des macros de type objet, qui nomment des constantes, comme #define BUF_SIZE 64, et des macros de type fonction, qui prennent des arguments, comme #define SQUARE(x) ((x) * (x)) ; le préprocesseur les développe avant la compilation. Le développement n'est qu'un remplacement de texte : sans parenthèses autour des arguments et du corps entier, la priorité des opérateurs peut produire une expression non voulue, et un argument à effet de bord comme SQUARE(i++) est évalué plusieurs fois.

Nom japonais: マクロ

« Macro (#define) » apparaît dans 3 questions d'entraînement réparties sur 1 thèmes, dont Bases de la programmation en C.

Domaine: Bases de la programmation en C

« Macro (#define) » dans les explications

Questions mentionnant « Macro (#define) » (3)

  1. Quelle est la sortie obtenue en exécutant le code ci-dessus, qui utilise la macro SQUARE définie par #define ?
  2. Le fichier d'en-tête sensor.h est écrit comme ci-dessus. Quel est le rôle des trois lignes #ifndef, #define et #endif ?
  3. Quelle est la sortie obtenue lorsque le code ci-dessus est écrit dans la fonction main et exécuté ?

Termes associés

Préprocesseur Argument Comportement indéfini (undefined behavior) struct (structure C) Alignement et remplissage (padding) Allocation dynamique de mémoire Champ de bits (bit-field) Débordement de tampon (buffer overflow) Fuite de mémoire (memory leak) Pointeur

Retour au glossaire