Quelle est la signification de cette définition “#define __arch_swab32 __arch_swab32”?

Dans /usr/include/asm/swab.h j’ai trouvé le code suivant:

static __inline__ __u32 __arch_swab32(__u32 val) { __asm__("bswapl %0" : "=r" (val) : "0" (val)); return val; } #define __arch_swab32 __arch_swab32 

Quelle est la signification de la dernière ligne, définissant un nom comme tel?

Ceci est appelé macro auto-référencée :

Une utilisation courante et utile de la référence à soi consiste à créer une macro qui se développe elle-même. Si vous écrivez

  #define EPERM EPERM 

alors la macro EPERM développe en EPERM . En effet, il est laissé seul par le préprocesseur chaque fois qu’il est utilisé dans le texte en cours d’exécution. Vous pouvez dire que c’est une macro avec #ifdef . Vous pouvez le faire si vous souhaitez définir des constantes numériques avec un enum , mais que #ifdef soit vrai pour chaque constante.