본문 바로가기
개발아닌개발/C,C++

[MFC/C,C++] 가변 인자를 이용하여 WORD 배열 Define 선언하기

by 불청객 2022. 4. 19.
반응형

숫자 배열을 Define으로 선언하여 사용하기 위함

가변 인자를 이용해서 구조체 생성자를 통해 내가 사용할 배열을 선언한다.
큰 숫자범위를 사용하지 않으므로 WORD Array를 적용하기로 함.

 

다양한 자료형에서 적용가능하다 define 하여 배열 선언 후 사용할 수 있음(CHAR, WORD, UINT 등)

 

 

가변인자인 만큼 숫자의 끝을 알기 쉽게 0으로 표기하였음.

while 조건문에서 0을 만나면 배열의 끝을 알 수 있다.

때문에 선언할 숫자에 0이 없을때 사용가능한 코드

 

끝에 0을 써주는 것 매우 중요한데 이건

굳이 0이 아니여도 끝이란걸 알게끔 while 조건문 수정하면됨.

typedef struct _WORD_ARRAY :public CWordArray
{
	_WORD_ARRAY(WORD _nNum, ...)
	{
		va_list vl;
		va_start(vl, _nNum);
		while(_nNum)
		{
			Add(_nNum);
			_nNum = va_arg(vl, WORD);
		}
		va_end(vl);
	}
}WORD_ARRAY;
#define	DefaultNo	_WORD_ARRAY(4320, 1440, 480, 160, 80, 20, 0)

 

더보기

// DefaultNo[0] = 4320

// DefaultNo[5] = 20 

728x90
반응형

댓글