ABI
ABI defines how compiled code interacts at the binary level: calling conventions, name mangling,
Object Layout
How C++ objects are arranged in memory: data members, padding, vtables, base class subobjects. Understanding layout is crucial for binary compatibility and optimization.
Padding & offsetof
This page is the low-level / ABI view: how padding affects a struct's on-the-wire byte layout,
Endianness
Byte order in multi-byte values.
volatile
volatile tells compiler that a variable can change unexpectedly (hardware, interrupts, other threads). Prevents certain optimizations. Not for thread synchronization - use atomics instead.
Inline Assembly
Embed assembly instructions directly in C++ code for performance-critical operations, hardware access, or platform-specific features unavailable in C++.
C Interoperability
C++ can call C functions and vice versa using extern "C" linkage. Essential for using C libraries, system APIs, and creating C-compatible interfaces.