What are some concepts/techniques/language features that every decent C programmer should know/be aware of (exclude general software engineering and similar and focus only on C specific stuff). I would like to know so that I would be able to fill in some possible gaps in my C knowledge.
What should a C programmer know?
programming languages;self improvement;c;concepts
Specific to C? Aside from standard constructs common to most procedural languages, I'd have to say:(ab)using the preprocessorlinker vs compilerPointers Pointers Pointers!How arrays are pointers are arraysHow C strings work, and how they are also pointers and arraysHow bad C string use can result in buffer overflowsHow to cast anything to anything (its all just 1s and 0s after all :) )Manual memory management malloc/freeStack vs HeapPointer aliasing, (why its illegal in C99)Thinking about development in terms of modules (.h/.c files) with a set of publicly exposed functions instead of strictly classesUnionsWhy sprintf can blow your foot offFunction pointers