📄️ 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
Padding bytes align struct members to hardware requirements. offsetof macro queries member positions. Understanding both optimizes memory usage and enables low-level memory manipulation.
📄️ 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.