ft_printf Overall
Printf의 기본 틀
- printf(format and print data)는 아래와 같은 기본적인 형태를 가집니다.
문자열 형태의 인자와 가변인자를 함께 갖고, 정상적으로 출력 됐다면 출력된 글자수를 반환합니다.
int printf(const char *format, ...)
- format의 conversion specification은 아래와 같은 형태를 가집니다.
%[flags][width][size][type]
- flags: "-+0 #" 중 하나 혹은 두개(추후에 소개)의 플래그를 가집니다.
- width: 거시적인 부분을 담당하며, 최종 출력될 크기와 관계됩니다.
- precision: 미시적인 부분을 담당하며, 출력될 가변인자와 관계됩니다.
- type: "cCdiuxXe..." 어떤 type의 가변인자를 출력인지 나타냅니다.
(주어진 과제에서는 "cspdiuxX%"에 대한 type만 구현합니다.)
구현 순서
- printf와 같은 역할을 하며, 출력에 대한 결과를 반환하는 src입니다.
[ft_printf.c]
- %를 발견하였을 때, flag/width/size/type을 찾습니다.
[printf_info.c]
- 타입에 따라 가변인자에 대한 출력을 관리합니다.
(필요시 출력할 가변인자에 대한 문자열 메모리 공간 할당, 사용 후 메모리 해제)
[printf_type.c, printf_type2.c]
- 가장 핵심적인 부분으로, type에 따라 주어지는 가변인자의 출력 방식을 결정합니다.
[printf_put.c]