Defining your platform might help as programming C for a PC and programming C for an embedded or micro controller platform are going to entail very different learning methods.
I've used LCC-win32 for PC's a little, it's a nice free ANSI based compiler/environment and a nice way to introduce yourself into C again. Plenty of tutorials and example code.
I learned ASM and have always used it. Now I'm finding that I need to know C for embedded systems (microcontrollers) It seems like every book I find is C++ or PC based C.
I learned ASM and have always used it. Now I'm finding that I need to know C for embedded systems (microcontrollers) It seems like every book I find is C++ or PC based C.
THat;s another reason I like Lafore- even though it's actually a C++ book a lot of it still applies to C and it's not really PC based. It teaches you the basic structures and organization of the language.
Practical C programming by Steve Oualline. ISBN 1-56592-306-5. Out of print. Look in places like half.com, I bought mine for like five bucks.
Beginning C: From Novice to Professional, Fourth Edition by Ivor Horton. ISBN-10 (pbk): 1-59059-735-4. This one you can probably find in a bookstore.
Both books are very good. The second one is easier to follow but much thicker which means you would have to spend more time following . In addition, source code for PICs is good for education - look in Microchip application notes and on www.microchipc.com. Also, sparkfun releases code for some of their products (like serial LCD "backpack") - take a look at that too.