C 매크로의 선택적 및 오버로드 매개변수
소개
C 매크로는 편리한 방법을 제공합니다. 코드 재사용 및 매개변수화를 위해. 그러나 기본적으로 매크로는 선택적 매개변수나 오버로드된 매개변수를 처리할 수 없습니다. 이 기사에서는 이러한 제한을 극복하기 위한 기술을 살펴봅니다.
해결책
다음 매크로 기반 접근 방식은 선택적이고 오버로드된 매개 변수를 허용합니다.
#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__)
사용법
이 매크로 기반 솔루션은 두 가지 주요 기능을 제공합니다. 이점:
다음과 같이 PRINT_STRING 매크로를 사용할 수 있습니다.
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
구현 세부 정보
이 솔루션은 여러 기술을 사용합니다.
위 내용은 C 매크로를 사용하여 선택적 및 오버로드된 매개변수를 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!