- libc의 printf 직접 구현하기
- 성공적인 ft_printf는 체계적이고 확장성있는 코드입니다.
- 사용 가능한 외부 함수
- malloc : void *malloc(size_t size); : size 바이트의 메모리를 힙에서 할당하여 반환
- free : void free(void *ptr); : ptr이 가르키는 메모리를 해제
- write : size_t write(int fd, const void *buf, size_t n); : open()함수로 연 파일에 쓸 수 있게 함
- va_start : **
- va_arg : **
- va_copy : **
- va_end : **
** 가변인자(variadic arguments)를 사용하는 방법을 배워봅시다.
> 가변인자 : 매번 함수에 들어가는 인수의 개수가 변하는 것
2022.01.16 - [42_san (42seoul)/ft_printf] - [ft_printf] 2. 가변인자 (variadic arguments)
- ft_printf의 프로토타입 : int ft_printf(const char *, ---);
> 반환값자료형 함수이름(자료형 고정매개변수, --- );
- 실제 printf처럼 버퍼 관리를 수행해서는 안된다.
- cspdiuxX%의 서식 지정자를 구현해라.
- %c : 단일 문자(character) 한 개 출력
- %s : 문자열(string)을 출력
- %p : void* 형식의 포인터 인자를 16진수로 출력
- %d : 10진수 숫자를 출력
- %i : 10진수 정수를 출력
- %u : 부호 없는 10진수 숫자를 출력
- %x : 소문자를 사용하여 숫자를 16진수로 출력
- %X : 대문자를 사용하여 숫자를 16진수로 출력
- %% : 퍼센트(%) 기호 출력
- man printf / man 3 stdarg 를 참고
2021.12.29 - [42_san (42seoul)/ft_printf] - [ ft_printf ] 1. printf
# 보너스 파트
- '-0.' 플래그들의 조합을 구현
- '# +' 다음 플래그를 모두 구현
'42seoul > circle-1' 카테고리의 다른 글
[ ft_printf ] 3. printf의 버퍼 관리 방법 (표준 입출력과 버퍼 | 스트림과 데이터 이동) (0) | 2022.01.15 |
---|---|
[ ft_printf ] 1. printf (0) | 2021.12.29 |
[ GNL ] 04. 선행지식_read() 함수 (0) | 2021.11.03 |
[ GNL ] 03. 선행지식_정적변수(Static) (0) | 2021.11.03 |
[ GNL ] 02. 선행지식_파일 디스크립터 (0) | 2021.10.31 |
댓글