"C99 모드 외부에서 사용 된 for 루프 초기 선언"GCC 오류를 어떻게 수정합니까?

StackOverflow https://stackoverflow.com/questions/24881

  •  09-06-2019
  •  | 
  •  

문제

3n + 1 문제 를 해결하려고하는데다음과 같은 for 루프 : 라코 디스

안타깝게도 GCC로 컴파일하려고 할 때이 오류가 발생합니다. <인용구>

3np1.c : 15 : 오류 : 'for'루프 초기 C99 모드 밖에서 사용 된 선언

C99 모드가 무엇인지 모르겠습니다.어떤 아이디어라도?

도움이 되었습니까?

해결책

루프 외부에서 i를 선언하려고합니다!

3n + 1 해결에 행운을 빕니다 :-)

예 : 라코 디스

C 여기 에서 for 루프에 대해 자세히 알아보세요.

다른 팁

C99 모드 를 활성화하는 컴파일러 스위치가 있습니다.for 루프 내부의 변수.켜려면 컴파일러 스위치 -std=c99 를 사용하세요.

또는 @OysterD가 말했듯이 루프 외부에서 변수를 선언하십시오.

CodeBlocks 에서 C99 모드로 전환하려면 다음 단계를 따르세요.

프로젝트 / 빌드 옵션 을 클릭 한 다음 컴파일러 설정 탭에서 하위 탭 기타 옵션 을 선택하고 텍스트 영역에 -std=c99를 배치하고 알겠습니다 .

이렇게하면 컴파일러의 C99 모드가 켜집니다.

이 정보가 누군가에게 도움이되기를 바랍니다.

이 오류도 발생했습니다. 라코 디스

C89 / C90 표준에서는 유효하지 않습니다.OysterD가 말했듯이 다음을 수행해야합니다. 라코 디스

원래 코드는 C99 이상의 C 언어 표준에서 허용됩니다.

@Blorgbeard :

C99의 새로운 기능

  • 인라인 함수
  • 변수 선언은 더 이상 파일 범위 또는 복합 명령문의 시작으로 제한되지 않습니다.
  • long long int, 선택적 확장 정수 유형, 명시 적 부울 데이터 유형 및 복소수를 나타내는 복합 유형을 포함한 몇 가지 새로운 데이터 유형
  • 가변 길이 배열
  • BCPL 또는 C ++ 에서처럼 //로 시작하는 한 줄 주석 지원
  • snprintf와 같은 새로운 라이브러리 기능
  • stdbool.h 및 inttypes.h와 같은 새 헤더 파일
  • 유형 일반 수학 함수 (tgmath.h)
  • IEEE 부동 소수점 지원 개선
  • 지정된 이니셜 라이저
  • 복합 리터럴
  • 가변 매크로 지원 (가변 매크로 매크로)
  • 보다 공격적인 코드 최적화를 허용하도록 제한

    http://en.wikipedia.org/wiki/C99

    C99 둘러보기

C 변경으로 컴파일하는 경우 라코 디스

대상 라코 디스

C99 스위치 세트로 컴파일 할 수도 있습니다.컴파일 라인에 -std= c99를 입력합니다. 라코 디스

참고 : http://cplusplus.syntaxerrors.info/index.php?title= 'for'_loop_initial_declaration_used_outside_C99_mode

같은 문제가 있었고 루프 외부에서 i를 선언하기 만하면됩니다. 라코 디스

Make 와 같은 자동화 된 빌드 유틸리티를 사용하는 외부 소스에서 코드를 컴파일하려는 경우 명시적인 gcc 컴파일 호출을 추적 할 필요가 없도록 환경 변수를 설정할 수 있습니다.명령 프롬프트에 입력하거나 .bashrc (또는 Mac의 경우 .bash_profile)를 입력합니다. 라코 디스

C ++ 11이 필요한 C ++ 컴파일로 유사한 시나리오를 실행하는 경우 유사한 솔루션이 적용됩니다. 다음을 사용할 수 있습니다. 라코 디스

Qt-creator의 경우 : * .pro 파일에 다음 줄을 추가하기 만하면됩니다 ... 라코 디스

Jihene Stambouli가 OP 질문에 가장 직접적으로 답변했습니다 ... 질문은; 왜 라코 디스

오류 발생 라코 디스

답변 라코 디스

해야 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top