2014-10-24 4 views
-1

Где именно должны быть объявлены прототипы? Например, сразу после включенных состояний или непосредственно перед основным методом? Я знаю, что они компилируются, но считается более стандартным или более допустимым?Где должны быть объявлены прототипы?

#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 в любом случае.

 Смежные вопросы

  • Нет связанных вопросов^_^