indique au compilateur de remplacer (c'est du traitement de texte pur) tout expression de type cbi(x,y) par le machin compliqué à droite. Cette expression mets à 0 le bit y une adresse qui dépend de x. D'où le nom cbi = clear bit.
L'autre macro met un bit à 1 (sbi = set bit)
De plus, on ne veut pas que ces macros soient définies si elles le sont déjà. Ce serait une erreur de compilation. Comment ça, déjà définies ? Ca peut arriver si, avant d'écrire ces macros, on inclut un fichier .h qui, lui-même les définit. Pour éviter l'erreur de compil, on entoure la définition (#define) de la macro par
#ifndef UNE_MACRO // seulement si UNE_MACRO n'est pas defini ( not defined )
#define UNE_MACRO(x) ce que tu veux fonction de x
#endif // fermer la condition #ifndef