반응형
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 |