가변길이 매개변수를 사용하는 custom_printf 함수
추천 자료: ASP.NET Core 인증 및 권한 부여
개요
C 언어에서 제공하는 printf 함수와 유사한 기능을 가진 custom_printf 함수를 작성합니다. 이 함수는 가변길이 매개변수를 사용하여 여러 형식의 값을 처리할 수 있습니다.
소스 코드 설명
코드: custom_printf.c
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
void custom_printf(char* format, ...);
int main(void)
{
custom_printf("%d \n", 10);
custom_printf("name=%s, age=%d, weight=%f", "red", 21, 60.0);
return 0;
}
void custom_printf(char* format, ...)
{
va_list args; // 가변 인자 목록
va_start(args, format); // 가변 인자 목록 시작
while (*format)
{
if (memcmp(format, "%d", 2) == 0)
{
int i = va_arg(args, int);
printf("%d", i);
format += 2;
}
else if (memcmp(format, "%f", 2) == 0)
{
double f = va_arg(args, double);
printf("%.2f", f);
format += 2;
}
else if (memcmp(format, "%s", 2) == 0)
{
char* str = va_arg(args, char*);
printf("%s", str);
format += 2;
}
else
{
printf("%c", *format);
format++;
}
}
va_end(args); // 가변 인자 목록 종료
}
10
name=red, age=21, weight=60.00
사용법
- 필요한 헤더 파일(
stdio.h
,stdarg.h
,string.h
)을 포함시킵니다. custom_printf
함수를 정의합니다.- 필요한 곳에서
custom_printf
함수를 호출하여 사용합니다. 형식 문자열을 첫 번째 인자로 전달하고, 이후에는 원하는 값들을 전달합니다. 예:custom_printf("name=%s, age=%d, weight=%f", "red", 21, 60.0);
결론
가변길이 매개변수를 사용한 custom_printf 함수를 구현하였습니다. 이 함수를 사용하면 printf 함수와 유사하게 다양한 형식의 값을 동적으로 처리할 수 있습니다. 이러한 기능은 로깅, 디버깅 등의 작업에서 유용하게 사용될 수 있습니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!