2014-07-26 5 views
0

C traps and Pitfalls을 읽는 동안, 나는 다음과 같은 코드를 가로 질러왔다.구조체

main() 구조체를 반환하는 대신 [main()이 int가 아닌 다른 값을 반환하는 것은 정의되지 않은 동작]이므로 다른 fun()에 대해 질문하고 싶습니다. 예를 들어이 오류 알 수없는 유형 ABC 방송을주는 주석 문 Abc a에서 언급 한 바와 같이

struct Abc{int a;} fun(){ 
    Abc a1; //Error : Unknown type name 'Abc' 
} 

int main(){ 
..... 
} 

합니다.

  1. 구조체 ABC 방송의 범위는 무엇인가

    그래서 나는이에 대한 두 가지 질문이 있습니까?

  2. fun() 안에 Abc 유형의 변수를 선언 할 수없는 경우 어떻게 구조체 Abc를 반환 할 수 있습니까?
+0

'logrec'은 PDF에 있지? – Brian

+0

아 실제로 실제로 버전을 알지 못했던 하드 카피를 가지고 있습니다. –

답변

3

단순한 구문 오류 일뿐입니다. Abc은 (는) struct Abc과 (와) 동일한 유형이 아닙니다.

변경 :

struct Abc{int a;} fun(){ 
    Abc a1; //Error : Unknown type name 'Abc' 
} 

에 :

struct Abc{int a;} fun(){ 
    struct Abc a1; 
} //^^^^^^ 
+0

이것도 작동 할 수 있습니다. - typedef struct Abc {int a;} Abc; 그렇지 않니? –

+0

이제 main()에서 선언 할 수도 있습니다 .. 감사합니다. 어리석은 질문이 유감입니다. –

+0

@mafso : thanks - one-answer가 업데이트되었습니다. –