2012-09-16 2 views
-1

나는 C에서 + + 당신은 런타임 변수 크기를 배열을 선언 할 수 있다는 것을 알고,하지만 난 법적 것이다 다음 여부를 확인하는에 관심이 :이런 종류의 배열 선언은 합법적입니까?

#include directives 
const int SIZE=5; 
double a[SIZE]; 

감사합니다!

+0

유효합니다. 어떤 오류가 있었습니까? – Vikdor

+0

@Vikdor 아니, 나는 아주 큰 프로그램의 한가운데에 있었고, 나는 단지 확신하고 싶었다. 그래서 나는'#define'을 사용할 필요가 없다. 고맙습니다! :) – Vokram

+0

@Vokram, C++ 11에는 그것을위한'constexpr'이 있습니다. 상수 표현과 관련하여'const'가 당신을 위해하는 것 이상입니다. – chris

답변

1

예 C++ 및 C에서는 모두 유효합니다.

SIZE

는 ++ const int SIZE=5;가 그렇게 선언하는 상수 식와 C에서 할 필요가있다.
C에서 종래 C99의 가변 길이 배열의 도입이 경우 SIZE상수 식되지만 판독 전용 단지 없기 때문에
const int SIZE=5; 
double a[SIZE]; 

가 오류를 생성 할 그것이 필요 유효한 상수 표현이되어야합니다.

관련 문제