Answer
An ABI defines binary-level conventions that let separately compiled code interoperate. • It covers details such as object layout, calling conventions, name mangling, virtual tables, and exception machinery. • Source-compatible code can still be ABI-incompatible across compilers, settings, or library versions. • Stable library boundaries require a documented platform ABI or an intentionally narrow C-compatible interface.
💡 C++ Example
extern "C" int library_version(void);
⚡ Quick Revision
An ABI is the binary contract between separately compiled program parts.