Paramètres facultatifs et surchargés avec les macros C
Introduction
Les macros C fournissent une méthode pratique pour la réutilisation et le paramétrage du code. Cependant, par défaut, les macros ne peuvent pas gérer les paramètres facultatifs ou surchargés. Cet article explore une technique pour surmonter cette limitation.
Solution
L'approche basée sur les macros suivante permet des paramètres facultatifs et surchargés :
#define PRINT_STRING_1_ARGS(message) PrintString(message, 0, 0) #define PRINT_STRING_2_ARGS(message, size) PrintString(message, size, 0) #define PRINT_STRING_3_ARGS(message, size, style) PrintString(message, size, style) #define GET_4TH_ARG(arg1, arg2, arg3, arg4, ...) arg4 #define PRINT_STRING_MACRO_CHOOSER(...) \ GET_4TH_ARG(__VA_ARGS__, PRINT_STRING_3_ARGS, \ PRINT_STRING_2_ARGS, PRINT_STRING_1_ARGS, ) #define PRINT_STRING(...) PRINT_STRING_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__)
Utilisation
Cette solution basée sur des macros fournit deux principaux avantages :
Vous pouvez utiliser la macro PRINT_STRING comme suit :
PRINT_STRING("Hello, World!"); // No size or style specified PRINT_STRING("Hello, World!", 18); // Size specified PRINT_STRING("Hello, World!", 18, bold); // Size and style specified
Détails d'implémentation
Cette solution utilise plusieurs techniques :
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!