Some very good observations.<p>Otherwise a few points, from the copy here (clearly a 1st ed): <a href="http:&#x2F;&#x2F;cs.upm.ro&#x2F;_users&#x2F;cursuri_on_line&#x2F;Alte_documentatii&#x2F;C%20Programming%20Language.pdf" rel="nofollow">http:&#x2F;&#x2F;cs.upm.ro&#x2F;_users&#x2F;cursuri_on_line&#x2F;Alte_documentatii&#x2F;C%...</a><p>&quot;void didn’t exist in the book (although it did exist at some point before C89; see here, section 2.1)&quot;
-&gt; There are many occurrences of void in the document above.<p>&quot;It appears that stdio.h was the only header that existed&quot;
-&gt; From the document above many other headers are available (string.h, math.h, etc.)<p>&quot;Note that return 0; was not necessary.&quot; (on the main function)
-&gt; return 0 is not necessary in Standard as well (even if the semantic of omitting it is different between C89 and C99).