в этом случае, но это может быть как правильно, так и неправильно. Другая проблема заключается в том, что компилятор не знает, какого рода аргументы ожидает ваша функция, и не может предупредить вас, если вы передаете значения неправильного типа. Существуют специальные правила «продвижения», которые применяются при передаче, скажем, значений с плавающей запятой в необъявленную функцию (компилятор должен расширить их до типа double), что часто не соответствует ожиданиям функции, что приводит к трудностям в поиске ошибок. во время выполнения.
tp://www.learncpp.com/cpp-tutorial/19-header-files/Упоминается следующее:
add.cpp:
main.cpp:
int add(int x, int y)
{
return x + y;
}
Мы использовали предварительное объявление, чтобы компилятор знал, что "
#include <iostream>
int add(int x, int y); // forward declaration using function prototype
int main()
{
using namespace std;
cout << "The sum of 3 and 4 is " << add(3, 4) << endl;
return 0;
}
был при компиляцииadd
, Как упоминалось ранее, написание предварительных объявлений для каждой функции, которую вы хотите использовать и которая находится в другом файле, может быстро утомить.main.cpp
Вы можете объяснить "
предварительная декларация«Далее? В чем проблема, если мы используем его в функционировать?main()
«Предварительная декларация» на самом деле просто декларация. Смотрите (конец) этого ответа: