Где именно должны быть объявлены прототипы? Например, сразу после включения статистики или прямо перед основным методом? Я знаю, что они оба компилируются, но считается ли он более стандартным или более читабельным?
#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;
}
или они не должны использоваться вообще, а главное должно быть объявлено последним?
Никто на самом деле не обратился, если какой-либо способ является более читабельным или предпочтительным
Было бы важно, если бы вы на самом деле использовали тип из std
в вашей функции прототипы. В вашем примере это не так, поэтому в вашем случае это не имеет значения.
Это не будет компилировать:
#include <string>
void foo(string const & s);
using namespace std;
Но это будет:
#include <string>
using namespace std;
void foo(string const & s);
Но ты не должен использовать using namespace std
тем не мение.
Прототип функции должен быть объявлен перед использованием функции. Это может быть объявлено даже в области видимости блока.
В приведенном вами примере это не имеет значения.
Правило таково:
Функция должна быть объявлена до Вы используете это (в этом случае: назовите это).
Замечания: Если функция определена до ее использования, вам не нужно явное объявление функции. Определение функции служит цели.