이 에러 메세지가 의미하는것은 무엇인가요..?^^

sadrove의 이미지

51:	for(int i=0; i<60; i++)
52:		md5_siteaddr[i] = md5_addr[i+4];

에러나는 부분은 위와 같고요...
에러메세지는 다음과 같습니다..

Quote:

hashing.c: In function `main':
hashing.c:51: `for' loop initial declaration used outside C99 mode
make: *** [hashing.o] 오류 1

저기서 말하는 C99 mode가 의미하는것은 무엇이죠..?
틀린 부분이 없는것 같은데...
도움 부탁드려요...

세이군의 이미지

원래는 아무 문제 없이 컴파일이 되어야 하는데 컴파일이 안 되네요..

한번

for(int i ~~~

부분을
int i;
for ( i ~~~ 

으로 바꾸고 다시 컴파일을 해 보세요.. 이번엔 될 겁니다.[/code]
버려진의 이미지

c표준에서는 for()문 안에서 변수 선언을 하지 못합니다.
해결책은 위에분이 말씀하신게 맞구요..
c++은 가능합니다.

winner의 이미지

표준 C 의 최신인 C99 에는 for 반복문의 범위를 갖는 변수선언이 가능하기 때문이죠.

즉 그 이전의 표준에서는 불가능합니다.

gcc 에서 option 을 -std=C99 으로 하시면 C99 표준에 맞춰 compile 하실 수 있습니다.

아직 gcc 는 C99 을 모두 준수하지는 않지만 가능한 것은 해주는 거죠.

sadrove의 이미지

답변 주신분들 감사합니다...
for(int i=0;... 이 너무 익숙해서..^^
고맙습니다.. :D