Teaching C (2016)
RMS recently released reference manual for GNU C - I am finding it to be direct and succinct.<p>Edit: I used to teach C to a group of undergrads and one question that came up often was around the special significance of the main function and order of definition of functions.<p>The RMS book addresses this very succinctly -<p><pre><code>    Every C program is started by running the function named main.   Therefore, the example program defines a function named main to provide a way to start it. Whatever that function does is what the program does. The main function is the first one called when the program runs, but it doesn’t come first in the example code. The order of the function definitions in the source code makes no difference to the program’s meaning.
</code></pre>
<a href="https://lists.gnu.org/archive/html/info-gnu/2022-09/msg00005.html" rel="nofollow">https://lists.gnu.org/archive/html/info-gnu/2022-09/msg00005...</a><p><pre><code>    If you understand basic concepts of programming but know nothing about C, you can read this manual sequentially from the beginning to learn the C language.</code></pre>