> 백엔드 개발 > C++ > 본문

C 매크로에서 선택적 매개변수를 어떻게 시뮬레이션할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-11-17 04:46:03
원래의
269명이 탐색했습니다.

How Can I Simulate Optional Parameters in C   Macros?

C에서 가변 매개변수가 있는 매크로

선택적 매개변수는 기본값이 있는 매개변수를 지정하는 편리한 방법을 제공하여 함수 호출에 유연성을 제공합니다. C는 기본적으로 매크로에서 선택적 매개 변수를 지원하지 않지만 이 동작을 시뮬레이션할 수 있는 기술이 있습니다.

한 가지 접근 방식은 재귀 매크로 패턴을 사용하는 것입니다. 예를 들어 보겠습니다.

#define PRINT_STRING(message, ...) PRINT_STRING_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__)

#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)
로그인 후 복사

PRINT_STRING 매크로는 다양한 개수의 인수를 사용합니다. PRINT_STRING_MACRO_CHOOSER 매크로는 인수 목록을 두 번 사용합니다. 한 번은 인수 수에 따라 올바른 도우미 매크로(PRINT_STRING_1_ARGS, PRINT_STRING_2_ARGS 또는 PRINT_STRING_3_ARGS)를 결정하고, 다시 한 번 선택한 도우미 매크로에 인수를 전달합니다.

사용 방법은 다음과 같습니다. it:

PRINT_STRING("Hello, World!");  // Defaults to no size or style
PRINT_STRING("Hello, World!", 18); // Specifies only size
PRINT_STRING("Hello, World!", 18, bold); // Specifies both size and style
로그인 후 복사

이 접근 방식은 매크로에 선택적 매개 변수를 제공하므로 호출자가 필요한 매개 변수만 지정할 수 있습니다. 그러나 여러 개의 도우미 매크로를 정의해야 하며, 이는 더 많은 수의 선택적 매개변수에 대해 장황해질 수 있습니다.

위 내용은 C 매크로에서 선택적 매개변수를 어떻게 시뮬레이션할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿