C, C++에서의 for구문에 대한 질문

theone3의 이미지

Quote:

int i;
int D_MAX_COUNT = GetExternVal();

for(i=0; i<D_MAX_COUNT; i++){
do_something();
}

위와 같은 코드가 있다고 할때, C++에서는 제대로 동작합니다.
설명하자면 MAX_COUNT_VAL 이 고정된 값이 아니라,
함수호출의 return값으로 변경이 가능하다고 할때,
C에서도 이 문장이 실행이 되는지 궁금합니다.

죄송합니다. 변수를 잘못 써서 잠시 수정하였습니다.

세벌의 이미지

do_something();

이 함수가 어떻게 되어있느냐에 따라 답이 달라질 수도 있을 것 같네요.

sangwoo의 이미지

D_MAX_COUNT 랑 MAX_COUNT랑 MAX_COUNT_VAL이 같은 변수라는
뜻으로 쓰신 거라면, (당연히?) 됩니다. 컴파일타임에 for 구문이 결정되지는
않는 걸로 압니다. 다만 do_something() 이 no-op인 경우는 생략되어 버리는
경우도 있다고 들었습니다. (최적화시..)

----
Let's shut up and code.