I firmly believe and would start-off stating, that the practices are for the benefit of the developers and not the organisation. Typically the following are the most general ones I would cover for a workshop. These are language independent and appreciated by an mixed audience and not covered in text books. On a cautionary note, it has been quite some time since I worked on C.
Large scale programming needs which are never properly conveyed and/or ignored until they bite.
Things to do
- Yes sir, namespaces or simulating them using structures.
- Physical file organisation & logical file organisation ( how to modularise code)
- Dependencies among header files and pre-processor directives, also - http://stackoverflow.com/questions/373142/what-techniques-can-be-used-to-speed-up-c-compilation-times
- Libraries which you would be mandating for project usage (to reinvent or not to reinvent)
- http://stackoverflow.com/questions/373142/what-techniques-can-be-used-to-speed-up-c-compilation-times/373224#373224
Things not to do
- Undefined behaviour (QC process can have builds for different platforms!)
- compiler dependent code
- macros in user code (kick if you want)
Alternative practices
Please be gentle, as I would be breaking many a rule here.
If you are not going to use Raw C, and you have more time in hand you can discuss other non-trivial concerns like auto-conf, forward declarations, smart pointers & RAII, 'actual' namespaces, exceptions :X. Some of the above are very useful aspects available only in C++. The subtle differences between C and C++ also become critical here. However, this section is only applicable if you decide to look beyond standard C.
My take on coding practices is a bit different, I would ask for consistency of style (quantifying which is very difficult). Most organisations do have their own coding practices so not a big concern. I also realise that these may be too late for a code-review, but it is up to you.