본문 바로가기
프로그래밍 언어/C(C++, C#)

[Error/C] 'for' loop initial declarations are only allowed in C99 or C11 mode

by upself 2022. 10. 14.
728x90

-std=c99이나 -std=c11아래 에러는 for문을 돌릴 때, 나오는 에러입니다.

 

구문으로 틀린 게 없는데 에러가 발생하여 찾아보니,

C99(1999년에 발표된 C 표준) || C11은 for문 내에서

변수를 선언하는 것이 유효한 C가 아니었기 때문에

발생하는 에러라고 합니다.

[Error] 'for' loop initial declarations are only allowed in C99 or C11 mode

 

 

에러를 해결하는 방법은 2가지 있습니다.

 

1. 변수를 미리 선언 후 for문에서 사용하기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//크기가 3인 double형 배열의 모든 원소의 주소를 출력하는 프로그램을 작성하시오. 단, 주소 구하기 연산자를 사용하지 마시오. 
int main(void)
{
	
	double arr[3] = {0};
	double *p = arr;
	int i;
	
	for(i=0; i< 3; i++)
		printf("x[%d]의 주소 : %p \n", i, arr + i);	
	
	return 0;	
}

 

2. C99 or C11을 사용할 수 있는 환경으로 바꿔주기

 

도구(T) => 컴파일러 설정(C)에 들어가 줍니다.

도구(T) => 컴파일러 설정(C)

 

 

 

 

□ 컴파일러 추가 명령: 

"-std=c99"이나 "-std=c11"을 추가해주면 됩니다!

-std=c99이나 -std=c11 추가 후 확인

 

 

삶이 있는 한 희망은 있다.

-키케로
반응형