[완료] const와 define의 차이?

질문이의 이미지

예를 들어 배열선언할때

char array[NUM];

하기전에
#define NUM ...
하면 되는데

const int NUM = ...;

으로 하면 안되거든요.
왜안되죠?

const로 하는 방법 없나요?

klara의 이미지

아마 오래된 컴파일러를 쓰시나봅니다.
오래된 컴파일러를 표준지원이 제대로 안되는 경우가 많습니다.
다음은 원래 정상적으로 컴파일되어야 하는 구문입니다.
const int size = 5;
int arr[size];
만약 사정이 있어서 컴파일러를 바꿀수 없다면 enum핵을 이용할 수 있습니다.

질문이의 이미지

아마 gcc와 VC내장 컴파일러의 차이인것 같군요..

감사합니다