Das Common Object File Format (COFF) ist ein standardisiertes Dateiformat, das primär für Objektcode (Object Code), ausführbare Dateien (Executables) und gemeinsam genutzte Bibliotheken (Shared Libraries) in verschiedenen Betriebssystemumgebungen, insbesondere in Unix-ähnlichen Systemen und Windows, verwendet wird. Es fungiert als umfassender Container für wesentliche Komponenten wie Maschinencode (Machine Code), Debugging-Informationen, Relokationsdaten (Relocation Data) und Symboltabellen (Symbol Tables). COFF-Dateien werden typischerweise von Compilern und Assemblern als Zwischendateien während des Software-Build-Prozesses erzeugt. Diese Objektdateien werden anschließend von einem Linker (Binder) miteinander verknüpft, um eine finale ausführbare Datei oder Bibliothek zu erstellen. Das Format ermöglicht eine modulare Kompilierung und Verknüpfung (Linking), wodurch Programmteile separat kompiliert und effizient zusammengeführt werden können. COFF unterstützt eine Vielzahl von Architekturen und Datentypen, was es zu einem vielseitigen Format für unterschiedliche Plattformen macht. Es ist eine entscheidende Komponente in der Toolchain (Werkzeugkette) der Softwareentwicklung und erleichtert das Debugging sowie dynamisches Linking, bei dem Bibliotheken erst zur Laufzeit geladen werden. Im Laufe der Zeit haben verschiedene Betriebssysteme und Compiler Variationen und Erweiterungen des COFF-Formats implementiert.