C ++ ключевое слово extern для функций. Почему бы просто не включить заголовочный файл?
Если я правильно понимаю это значит
extern void foo();
что функция foo объявлена в другом модуле перевода.
1) Почему бы просто не #include заголовок, в котором объявлена эта функция?
2) Как компоновщик узнает, где искать функцию во время компоновки?
edit: может быть, я должен уточнить, что за приведенным выше объявлением следует использование функции
foo();
Это никогда не определяется в этом переводе.