Я пытаюсь понять несколько основ о extern, static и т.д. и пробовал следующий пример, но я не понимаю, почему я не могу вызвать функцию только потому, что она (возможно) встроена.
Мой первый файл: F1.cpp
#include <iostream>
void Modify();
int i;
int main() {
i = 1;
std::cout << "i = " << i << std::endl;
Modify();
std::cout << "i = " << i << std::endl;
return 0;
}
Второй файл: F2.cpp
#include <iostream>
extern int i;
inline void Modify() {
i = 99;
std::cout << "i = " << i << std::endl;
}
С ключевым словом inline в F2.cpp я получаю: undefined ссылку на Modify () в моем файле F1.cpp. Удалив его, код компилируется и работает нормально.
Я предполагаю, что ключевое слово inline в C ++ имеет какое-то поведение, подобное ключевому слову static?
Я тоже просмотрел эту тему, но помимо того факта, что в документации сказано, что встроенная функция всегда должна быть в файле заголовка, я не понимаю: Встроенная функция-член C ++ в файле .cpp
Спасибо за вашу помощь !