Challenge 3: Why int32_t Is a Genuinely Different Guarantee Than int — Possible Solution ==================================================================== Plain `int` only carries a MINIMUM-size guarantee from the C standard -- at least 16 bits, commonly implemented as 32 bits on today's platforms, but that "commonly" is doing real work: a conforming compiler on an unusual or embedded platform could legally make `int` a different size, and code that quietly assumed "int is always 4 bytes" would silently misbehave there. `int`'s exact size is a fact about a particular platform's implementation, not a fact guaranteed by the C language itself. `int32_t`, declared via ``, carries a genuinely stronger promise: on any platform where it's available at all, it is EXACTLY 32 bits, no more, no less -- the type's own name is the guarantee, not a description of "what's typical." Code using `int32_t` behaves identically across every platform that provides it, exactly the portability plain `int` doesn't offer. Rust's `i32` never needed an "opt-in exact width" equivalent because Rust made EVERY integer type exact by definition from the very start -- there is no Rust equivalent of C's plain, size-ambiguous `int` at all. Every Rust integer type's name already states its exact size (`i32` is always 32 bits, `i64` is always 64 bits, with no "commonly" attached). C's situation exists specifically because `int` predates that design choice by decades -- `` was added later (in C99) as a retrofit, giving C a way to OPT IN to the guarantee Rust simply builds in as the only option to begin with. The two languages didn't arrive at different answers to the same question; C had to solve a problem (ambiguous sizes) that Rust's design never created in the first place. WHY THIS WORKS AS AN ANSWER ------------------------------ This distinguishes a minimum-size guarantee (int) from an exact-size guarantee (int32_t) precisely, and explains why Rust never needed the equivalent opt-in mechanism -- because Rust eliminated size ambiguity by design from the start, rather than retrofitting a fix the way C's stdint.h does.