That sounds like more of a way to learn x86 assembly than a way to learn C. For all we know, this guy is writing his C for an ARM or a m68k - who knows?
the OP says "My objective is to better understand how computers work, how ruby works, and generally to be a better software engineer." I just gave him options.