printf

    c언어 - printf()의 서식지정자(format specifier)와 플래그

    서식지정자란? 먼저, printf()는 다음과 같은 형태로 정의되어있습니다. int printf(const char *format, ...) printf()가 가변 인수 '...'으로부터 넘겨받은 변수들을 출력하기 위해서는, 각 변수의 자료형에 대한 정보가 필요합니다. 이러한 정보를 안내하는 것이 '%'기호로 시작하는 서식지정자이며, 다양한 플래그를 활용하면 넓이, 좌우 정렬 등의 출력 형태도 설정할 수 있습니다. %[플래그][넓이][.(정밀도)][길이]서식지정자 여기서 '%서식지정자'는 서식지정자를 사용할 때 필수 요소이지만, 그 밖의 플래그나 넓이 등의 옵션은 선택사항입니다. 서식지정자 실제 printf()에는 더 많은 서식지정자들이 있지만, 우선은 ft_printf에서 요구하는 서식지정자들 위주로 ..

    c언어 - 가변인자란? 가변인자로 간단한 printf() 구현하기

    가변 인자란? 함수의 매개변수 개수가 고정적이지 않고, 변할 수 있다는 의미입니다. printf와 같이 매개변수의 개수가 정해지지 않은 함수를 구현하기 위해 가변 인자를 사용합니다. 반환형 함수명(고정 매개변수, ...) { } 여기서 두 번째 매개변수인 '...'가 가변 인자이며, 가변 인자를 사용하기 위해서는 고정 매개변수가 1개 이상 필요합니다. 가변 인자 사용하기 '...'으로 받아온 가변 인자를 사용하기 위해서는 stdarg.h 헤더를 포함해야 합니다. #include 이 헤더에는 가변 인자를 처리하기 위한 매크로가 포함되어있습니다. va_list 가변인자 포인터. 각 가변인자의 메모리 주소를 가짐 va_list 변수명 va_arg 가변인자 포인터로부터 값을 받아오고, 다음 가변인자 주소로 이동..