2010-12-15 3 views
0

몇 시간 전 Windows에서 실행되고 MinGW (Windows 포트 GCC)와 함께 제공되는 Dev C++ IDE를 사용했는데 이제는 Mac OS X Leopard로 이동했습니다. 나는 Code :: Blocks IDE와 XCode 3.2.2와 함께 제공되는 GCC v4.2 (사과 수정판)를 사용하고있다. 내 문제가 배포판 (Dev cpp) 또는 컴파일러 릴리스에 의존하는지, 아니면 GCC의 Apple 배포판인지 여부는 알 수 없지만 구조화 된 데이터를 선언 할 때이 diffrence가 발생했습니다. 오래된 데브 CPP에서 GCC 표준 컴파일 규칙에 따라 다른 형태의 배포판/버전이 있습니다. 구조체

는 Windows에서 실행 난 단지 = 1000이

CONST의 INT의 최대 delcared;

가 가 이

무효 some_function는 (데이터 일)


그것은 잘 작동 :

구조체 데이터 {

char thing[max]; 
    int anotherthing; 

}

는이 같은 함수에 참조 사용 . Code :: Blocks IDE를 사용하는 Xcode 버전의 컴파일러에서 일부 오류가 발생하고 컴파일되지 않습니다.

new types may not be defined in a return type 

오류 : '최대'가이 범위에 선언되지 않은

감사합니다!

+0

전체 코드 스 니펫과 행 번호가 포함 된 오류를 게시 할 수 있습니까? 게시 한 비트에서 누락되었습니다. 귀하의 구조체 정의 끝에 있지만 아마 복사 및 붙여 넣기 오류입니다. – greatwolf

답변

0

나는 (reefers) 올바른 행의 오류 내용으로 의견을 냈다.

네임 스페이스를 사용하여 표준

포함한다; const int max = 1000;

타입 정의 구조체 {다토

short pos; 
char cont[max]; //error: 'max' was not declared in this scope 

};

는 ... 그런 다음 주요 기능 제공 :

INT 주() {

char aArray[max]; //error: 'max' was not declared in this scope 
int posz; 

... 계속 오순절 좋은 코드의 코드에서

+0

이것은 답변이 아닙니다. 이렇게하면 사람들은 질문에 이미 대답했다고 생각할 수 있습니다. 대신 질문을 수정하는 것이 좋습니다. – Heatsink

+0

아, 네가 미안해 내가 새로운데. :) – Ariztotele

0

당신이 게시 조각을, 나는 '돈 그것을 잘못 본다. 그것은 당신이지고있는 오류없이 컴파일해야합니다. max를 메인의 로컬 범위로 옮기면 어떻게됩니까? aArray에 대한 오류가 여전히 발생합니까?

컴파일에 영향을 줄 수있는 유일한 다른 점은 스위치가 gcc로 전달된다는 것입니다. gcc가 호출 될 때 C :: B가 전달하는 명령은 어떻게 생겼습니까?