Q: My compiler is complaining that printf is undefined! How can this be? It's the world's most popular C function...
A: Allegedly, there are C compilers for Microsoft Windows which do not support printf, on the argument that printf is for printing to old-fashioned terminals, while under Windows the right way to display text is to call xxx to open a window and then xxx to display text in it. It may be possible to convince such a compiler that what you are writing is a ``console application'' meaning that it will take care of opening a ``console window'' for you automatically, and condescend to let you call printf to print stuff to it.
See also question 19.4b.