Game Dev/Article

배열과 Loop를 다루는 3가지 방법

AKer 2009. 1. 12. 22:42
반응형
1. 배열의 크기를 리터럴로 설정
- Magic Number로 인해 추적이 어려울 수 있다.
- 배열의 크기가 변경되면 Loop도 변경해야 한다.
int aSomeArray[5] = {0};

for (int i = 0; i < 5; ++i)
{
	// Do Something
	aSomeArray[i] = Func(i); 
}


2. 배열의 크기를 상수로 설정
- Magic Number는 사라졌지만, 상수에 따라 for 조건문 등이 변경되야 한다.
#define MAX_ARRAY_SIZE	5

int aSomeArray[MAX_ARRAY_SIZE] = {0};

for (int i = 0; i < MAX_ARRAY_SIZE; ++i)
{
	// Do Something
	aSomeArray[i] = Func(i); 
}


3. 배열의 크기를 추적
- 배열의 크기가 변경되어도 Loop를 변경시킬 필요가 없다.
#define ARRAY_LENGTH(x) (sizeof(x)/sizeof(x[0]))
#define MAX_ARRAY_SIZE	5

int aSomeArray[MAX_ARRAY_SIZE] = {0};

for (int i = 0; i < ARRAY_LENGTH(aSomeArray); ++i)
{
	// Do Something
	aSomeArray[i] = Func(i);
}



참고 : Code Complete 2
반응형

'Game Dev > Article' 카테고리의 다른 글

편리한 STL Container Macro  (0) 2009.03.26
Internet File Download  (0) 2009.02.20
Render to Texture  (0) 2008.12.17
소프트웨어 일정 예측  (1) 2008.10.22