I tried to learn C once using Kernighan and Ritchie. Coming from VB, C appeared to me to be designed as an instrument of torture bent on destroying my computer in a fireball of crashes. That book went back into the bookcase about 30 years ago and hasn't been touched until just now, when I used it to see how to spell Kernighan.
the 4 must have books.
K&R C (Is where I learned C from) still the best references on preprocessor define formations. Such as what ## does.
This type of define is extremely use full
#define pkMSG_ENTRY(A) {A ## _FMT,NULL,A ## _ID,sizeof(A ## _MSG) ,#A }
Stevens TCP/IP Illustrated Vol 1 & 2
Stevens Inter process communications
HiTech