2014-10-24 3 views
-1

정확히 프로토 타입을 선언해야합니까? 예를 들어 include 문 바로 뒤에 또는 main 메소드 바로 전에? 나는 그들이 둘 다 컴파일하지만 하나는 더 표준 또는 더 redable 것으로 간주 알아?함수 프로토 타입을 어디에 선언해야합니까?

#include <iostream> 
#include <cstdlib> 

const unsigned int PI = 3.14; 

using namespace std; 

int myFunc(int x, int y); 
long factorial(int n); 

int main() 
{ 
    //... 
    return 0; 
} 

또는

#include <iostream> 
#include <cstdlib> 

int myFunc(int x, int y); 
long factorial(int n); 

using namespace std; 



int main() 
{ 
    //... 
    return 0; 
} 

또는 shoudl 그들은 모두에서 사용할 수 없습니다 및 주요 마지막으로 선언해야 하는가?

편도가 더 읽기 쉽거나 선호되는 경우 아무도 실제로 해결하지 못했습니다.

+0

예를 들어 차이는 없습니다. 함수가 실제로 호출되기 전에 어딘가에. –

+1

두 프로그램 모두 차이점이 없습니다. 어쨌든'using namespace std'를 사용해서는 안됩니다. –

+0

헤더에 넣고 그 번역 단위에 주요 솔로를 넣을 것을 제안합니다. – sp2danny

답변

0

함수 프로토 타입을 함수 사용 전에 선언해야합니다. 블록 범위에서도 선언 될 수 있습니다.

0

위의 예에서는 문제가되지 않습니다.

규칙은 다음과 같습니다

함수는 (: 호출이 경우)를 사용 전에 선언되어야한다.

참고 : 주 : 기능이 사용되기 전에 정의 된 경우 명시 적 기능 선언이 필요 없습니다 함수 정의가 그 목적을 수행합니다.

1

함수 프로토 타입에 std의 유형을 실제로 사용했는지 여부 만 중요합니다. 귀하의 예에서는 그렇게하지 않으므로 귀하의 경우에는 중요하지 않습니다.

이 컴파일되지 것입니다 :

#include <string> 

void foo(string const & s); 

using namespace std; 

하지만이 것 :

#include <string> 

using namespace std; 

void foo(string const & s); 

그러나 you shouldn't use using namespace std 어쨌든.

관련 문제