A function call can consume more than the function’s own work: execution may reserve stack space, initialize or copy locals, transfer control, and copy a struct return value according to the platform’s calling convention. If caller and callee definitions are visible in the same translation unit, a compiler may inline the callee, removing the call overhead and exposing further optimization opportunities. TAKEAWAY: Inlining removes the call itself, but depends on definition visibility and compiler decisions. section 15.1
Inlining a small C function
The `toto_init` definition checks its argument, initializes the pointed-to object when non-null, and returns the pointer. Placing this definition in a header makes it visible to users that need possible inlining; a separate translation unit can provide the function symbol once.
