Printf

2020 11 20

코딩클로스 2020. 11. 21. 00:02

가변인자

함수에서 가변 인자를 정의할 땐느 고정 매개변수가 한 개 이상 있어야함

고정 매개 변수뒤에 ...을 붙여야 한다.

반환값 자료형 함수이름(자료형 고정매개변수, ...) { }

#include <stdio.h>
#include <stdarg.h>    //va_list, va_start, va_arg, va_end가 정의된 헤더 파일

void printNumbers(int args, ...) //args는 고정매개변수, ...로 가변 인자를 설정
{
 	va_list ap; //가변 인자 목록 포인터 각 가변인자의 메모리 주소를 가질수 있음
    
    va_start(ap, args); //가변인자 포인터에 첫번째 가변인자의 주소를 전달
    for (int i = 0; i < args; i++)
    {
    	int num = va_arg(ap ,int);  //int 크기만큼 가변 인자 목록 포인터에서 값을 가져옴
    	printf("%d", num);
    }
    va_end(ap); // 가변 인자 목록 포인터를 null로 초기화
}

 

 

 

공용체

구조체와 비슷하다 하지만 메모리를 어떻게 활용하느냐에 차이가 있음

구조체는 멤버 변수마다 각각의 메모리를 할당해주지만,

공용체는 멤버변수 중 가장 메모리 할당량이 큰 변수 하나의 공간만 할당하고 그 메모리 공간을 서로 공유