Если я просто сделаю это:
Ex1:
#include <iostream>
int main()
{
//try to call doSomething function
doSomething();
}
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
Я получаю ошибку компиляции! Потому что компиляция не знает, что такое doSomething.
Но если я поменяю позицию doSomething на первое место, программа успешно скомпилируется.
Ex2:
#include <iostream>
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
int main()
{
//try to call doSomething function
doSomething();
}
Я могу объявить прототип так:
Пример 3:
#include <iostream>
void doSomething(void);
int main()
{
//try to call doSomething function
doSomething();
}
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
Но почему первый пример не работает? Почему мне даже нужно сначала объявить прототип или вызвать функции и, наконец, функцию main?
Спасибо!