2013-07-11 8 views
0

내가 GNU C library - Date-time - Data & Functions 를 통해 읽고,이 함수 정의를 건너 왔어요되었다와 변수에 대한 포인터를 선언합니다. - 괄호() 안에 변수 유형이 없습니다. "struct timeval"유형이 나중에 나오지만 동일한 변수 이름을 사용합니까? 전달 함수의 매개 변수는 다음 같은 이름

위는

int struct_timeval(struct timeval *result, struct timeval *x, struct timeval *y){ 

    //do stuff 
} 

여부를 전적으로 동일합니다?

+1

K & R 스타일로 알려진 구식입니다.이 유형의 질문에 대해서는 많은 부분이 중복되어 있습니다. Google을 참조하십시오. –

답변

1

그것은 이전 스타일의 함수 선언입니다. 그것은 선언에 식별자 목록을 사용합니다.

이러한 종류의 선언은 함수 프로토 타입과 동일하지 않습니다. 프로토 타입의 경우, 함수 인수는 대입에 의한 것처럼 프로토 타입 기본 인수 승격이 발생하는 것처럼 매개 변수 유형으로 변환됩니다.

+0

나는 잘 모르겠다. "논쟁 촉진"? – nass

+0

일반적으로 @nass는'int'보다 더 좁은 타입의 인자 ('char','short', ...)가'int'로 변환되고'float'가'double'으로 변환된다는 것을 의미합니다. – ouah