printf/sprintf에 변수 인수 전달
프로그래밍에서는 가변 길이 텍스트나 데이터의 형식을 지정하고 표시해야 하는 경우가 종종 있습니다. printf 및 sprintf와 같은 함수에 의해 일반적으로 처리되는 작업입니다. 그러나 이러한 함수에는 일반적으로 고정된 개수의 인수가 필요합니다. 이러한 함수에 가변 개수의 인수를 어떻게 전달할 수 있습니까?
해결책: va_* 함수 사용
C 언어는 접두사가 "va_"인 함수 집합을 제공합니다. "를 사용하면 가변 길이 인수 목록을 사용할 수 있습니다. 이러한 함수에는 va_start, va_arg 및 va_end가 포함됩니다.
printf 또는 sprintf에 가변 개수의 인수를 전달하려면 다음 단계를 사용할 수 있습니다.
예:
#include <stdio.h> #include <stdarg.h> class MyClass { public: void Error(const char* format, ...) { va_list argptr; va_start(argptr, format); vfprintf(stderr, format, argptr); va_end(argptr); } };
이 예에서 Error 메서드는 형식 문자열과 가변 개수의 인수를 사용합니다. va_arg를 사용하여 인수를 검색한 다음 vfprintf를 호출하여 텍스트 형식을 지정하고 stderr로 출력합니다.
참고:
vfprintf 대신 vsprintf를 사용할 수 있지만, 버퍼 오버플로에 취약하므로 권장되지 않습니다.
위 내용은 가변 개수의 인수를 printf/sprintf에 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!