Utilisation de la macro de fonction de définition : 1. Définissez une macro de calcul simple, "#define SQUARE(x) ((x) * (x))" 2. Définissez une macro avec plusieurs paramètres, "#define MAX (a, b) ((a) > (b) ? (a) : (b))"; 3. Définir des macros avec des expressions complexes, "#define ABS(x) ((x) < 0 ? -(x) : (x)) ».
La macro de fonction est un type spécial de macro défini à l'aide de `#define`, qui est utilisé pour utiliser un morceau de code comme texte de remplacement de la macro. La syntaxe de base d'une macro de fonction est la suivante :
#define 宏名(参数列表) 替换文本
Dans une macro de fonction, la liste des paramètres est facultative et le texte de remplacement est un extrait de code. Lorsque le préprocesseur rencontre un appel à une macro de fonction, il remplace les paramètres de la macro de fonction par les paramètres réels et insère le texte de remplacement dans le code.
Voici quelques utilisations courantes des macros de fonctions :
1. Définissez une macro de calcul simple :
#define SQUARE(x) ((x) * (x))
Lors de l'utilisation de `SQUARE(5)` dans le code, le préprocesseur le remplacera par `((5) * ( 5))', c'est-à-dire '25'.
2. Définissez une macro avec plusieurs paramètres :
#define MAX(a, b) ((a) > (b) ? (a) : (b))
Lorsque vous utilisez `MAX(5, 10)` dans le code, le préprocesseur le remplacera par `((5) > (10) ? ( 5) : ( 10))`, c’est-à-dire `10`.
3. Définissez des macros avec des expressions complexes :
#define ABS(x) ((x) < 0 ? -(x) : (x))
Lorsque vous utilisez `ABS(-5)` dans votre code, le préprocesseur le remplacera par `((-5) < 0 ? -(- 5) : (- 5))`, qui vaut `5`.
Il convient de noter que les macros de fonctions ne sont que de simples remplacements de texte, sans vérification de type ni restrictions de portée. Par conséquent, des précautions doivent être prises lors de l’utilisation de macros de fonctions pour éviter les erreurs potentielles et les effets secondaires. De plus, étant donné que la macro de fonction est remplacée lors de la phase de prétraitement, ses paramètres ne sont pas évalués plusieurs fois. Par conséquent, les expressions ayant des effets secondaires doivent être évitées dans les macros de fonctions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!