6

This reply to the question "I don't know C. And why should I learn it?" has me interested in learning C. What is a good self-instruction program (textbook/website/OpenCourseWare, etc.) for someone who already has lots of experience in high-level languages?

RexE
  • 249

3 Answers3

19

This is a clichéd answer, but my intro to C programming was Kernighan and Richie's The C Programming Language.

mipadi
  • 7,533
1

If your goal truly is to understand what goes on under the hood, then perhaps, instead of learning C and writing a toy program in it, you instead look at a C compiler and understand how that works. As far as compilers go, a C compiler is one of the simplest, as the language doesn't have all that many high-level features.

As for which compiler, I would take a simple compiler with an easy to understand machine architecture, so you're not mucking about too much with x86 instructions.

I'd suggest the C-- compiler (written in Java) which outputs MIPS assembly.

Neal Tibrewala
  • 1,103
  • 7
  • 12
0

Leendert Ammeraal's "C For Programmers", while VERY dated now (15 years old or more) is by far the best thing I have ever seen along these lines.