Header-Dateien sind das Deklarations-Futter für xxx.c (Sourcecode) oder xxx.lib (statische Bibliotheken). Schau mal in die xxx.c, die myasuro.h benötigen, z.B. asuro.c, encoder.c oder switches.c. Dort wirst Du myasuro.h finden.

Zunächst sollte man verstehen, wie eine ausführbare binäre Datei aus Sourcecode entsteht. Hierzu verwendet man wahrscheinlich unbewusst drei Werkzeuge:

Precompiler / Präprozessor
Compiler
Linker

Der Precompiler / Präprozessor durchforstet den Sourcecode, um spezielle Anweisungen auszuführen. Diese Anweisungen beginnen mit #.
In unserem Beispiel erkennt der Precompiler z.B. #include "asuro.h" und setzt an dieser Stelle den entsprechenden Sourcecode des Headers ein. Auf diese Weise wird der gesamte Sourcecode bearbeitet, also auch alle #define ... ... ersetzt.

Der resultierende Sourcecode wird dem Compiler übergeben. Dieser erzeugt dann Objektdateien (xxx.o).

Diese werden vom Linker zusammen mit statischen Bibliotheken in eine lauffähige Programmdatei überführt.

Bei MS Windows gibt es noch dynamische Bibliotheken (dll), die erst während der Ausführung des Programms - also dynamisch - gebunden werden ( http://www.henkessoft.de/C++/WinAPI/...s%206/api6.htm ).