함수는 extern을 쓰지 않아도 기본적으로 extern을 내포하고 있는 걸로 알고 있습니다. 대신에 return type을 컴파일러가 임의의 타입으로 가정하고 컴파일 해 버리기 때문에 예기치 않은 결과를 가져 올 수 있습니다.
가능한 extern으로 미리 선언을 해 두고 사용하시는게 좋습니다.
함수는 기본이 extern 인 것 맞는데, "return type 을 가정하고 컴파일 하기 때문에 문제가 있다"는건 좀 이상하군요. :(
함수는 static 을 별도로 명시해 주지 않으면 extern 으로 보시면 됩니다.
그리고 함수의 static 은 변수의 static 과는 다른 의미입니다. :)
함수명은 extern으로 선언하는것이 아니라.
그냥 정의만 되어있고 나중에 link할때만 사용하는것입니다.
a.c에 b.h가 인크루드되던지 아님 그냥 b.c에 잇는 함수를 선언만 하면
사용할수 있습니다. 나중에 링크할때 그 함수가 링크가 않되면 오류가 생기는것입니다.
착오없으시길.^^;
Perl 만세~~~
함수는 extern을 쓰지 않아도 기본적으로 extern을 내포하고 있는
함수는 extern을 쓰지 않아도 기본적으로 extern을 내포하고 있는 걸로 알고 있습니다. 대신에 return type을 컴파일러가 임의의 타입으로 가정하고 컴파일 해 버리기 때문에 예기치 않은 결과를 가져 올 수 있습니다.
가능한 extern으로 미리 선언을 해 두고 사용하시는게 좋습니다.
[quote="next"]함수는 extern을 쓰지 않아도 기본적으로 e
함수는 기본이 extern 인 것 맞는데, "return type 을 가정하고 컴파일 하기 때문에 문제가 있다"는건 좀 이상하군요. :(
함수는 static 을 별도로 명시해 주지 않으면 extern 으로 보시면 됩니다.
그리고 함수의 static 은 변수의 static 과는 다른 의미입니다. :)
[quote="ssehoony"][quote="next"]함수는 exte
아마 원형을 제공하지 않은 함수의 반환형은 int로 가정한다는 것(implicit int)을
말씀하려고 하신 것 같군요. 물론 "임의의 타입"이 아니긴 하죠. C99에서는 제거된
특징입니다.
댓글 달기