2017-02-17 3 views
-3

4.7.0을 지금 gcc GCC의 전 4.4.x에서 업그레이드 한 후, 내가보기 시작 gcc 4.4.x와 함께. -std=c99 옵션을 사용해 보았지만 작동하지 않았습니다. 다음 스 니펫이 작동 할 수 있습니다.초기화 요소 계산할 수 없습니다

prm_arr[0] = prm.field1; 
prm_arr[1] = prm.field2; 
prm_arr[2] = prm.field3; 

이 오류를 유발하는 것은 무엇입니까?

+2

[MCVE] (http://stackoverflow.com/help/mcve)를 게시하십시오. 특히이 코드가 파일 범위 또는 블록 범위에 있는지, 그리고'prm.field1' 등이 무엇인지는 중요합니다. –

답변

0

C89에서 초기화 목록은 컴파일 타임에 알려진 상수 식이어야합니다. (하지만 그것은 C99에서 작동합니다). 따라서 당신이하는 일은 올바른 방법이 아닙니다. 두 번째 발췌 문장은 반드시 작동해야합니다.

+0

비 정적 변수의 초기화 프로그램은 C99 이후 상수 표현식 일 필요는 없으며 OP는'-std = c99'를 시도했다고 말합니다. –

+0

OP가 뭔가 잘못하고 있어야합니다. @ M.M – Jarvis

관련 문제