Заголовочные файлы C / C ++ и файлы реализации: как они работают?

Это , вероятно, глупый вопрос, но я довольно долго искал здесь и в Интернете и не мог найти с четким ответом (искал ли я в гугле должную осмотрительность).

Итак, я новичок в программировании ... У меня вопрос, как функция main узнает об определениях (реализациях) функций в другом файле?

например. Скажем, у меня есть 3 файла

  • main.cpp
  • myfunction.cpp
  • myfunction.hpp

//main.cpp

#include "myfunction.hpp"
int main() {
  int A = myfunction( 12 );
  ...
}

-

//myfunction.cpp

#include "myfunction.hpp"
int myfunction( int x ) {
  return x * x;
}

-

//myfunction.hpp

int myfunction( int x );

-

Я понимаю, как препроцессор включает код заголовка, но как Заголовок и основная функция даже знают, что определение функции существует, а тем более используют его?

Прошу прощения, если это неясно или я сильно ошибаюсь в чем-то, новое здесь

40
задан emlai 29 December 2016 в 15:30
поделиться