However, the swprintf function, which is a VC++ library functionis the correct one touse.
The wsprintf functionis part ofsome windows API, and does not support all the formatting options. For example wsprintf does not support the "*" width specification.
If you are using TCHAR to define your data then you must use the routines with the _st prefix as described in http://msdn.microsoft.com/en-us/library/ybk95axf.aspx[^]/ This allows the compiler to generate code for ASCII or Unicode depending on your project settings. If your program is only ever going to handle Unicode character data then you should use WCHAR and the PW prefixed pointers.
It is almost always necessary, and there is no reason not to use header files. Therefore you should never include a .c file.
It all comes down to the question where the actual implementation of the function can be found within the final executable program. The compiler will read your .c files one by one and generate the machine code for all functions implemented therein. All include statements will be resolved before the compiler even sees those files, therefore including another .c file is equivalent to copying the entire code of that .c file! This may result in multiple copies of the same function, and, as a result, the linker may be unable to generate a program.
Technically you can avoid these issues without the help of header files: all you need are declarations of the data types and functions declared somewhere, that you need in your current .c file. The header files are used as a means to assemble this information in just one place, rather than copy the declarations to every .c file that needs them. This way you can ensure that all files are properly updated with the relevant information, whenever the data type or function declarations change!
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)