Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

ABI

The machine-level rules for how functions pass arguments and lay out data.

An ABI fixes calling conventions, register use, and data layout; extern "C" selects the platform's C ABI and #[repr(C)] gives a type C's layout.

Loading interactive…

Examples

  • Assigning a plain fn(i32) -> i32 to a variable of type extern "C" fn(i32) -> i32 fails with E0308: the two use different calling conventions.

Read the full section →