I'll probably get bashed for saying this but I highly recommend using a more developer friendly and stable language such as C#. Simply put Microsoft has spent millions of hours perfecting code managers, garbage collectors and their IDE that make your life so much easier and frankly you nor I will ever do it any better than they have it right now. By the time you even write your basic dynamic memory management and input collector's you will have already spent over 100 hours on stuff that doesn't even perform half as well as the C# / .NET frameworks do.
It's wiser when developing games to choose a language, engine and development kit that gives you what you need. Which in todays market means C++ or C# period. C is antiquated and not many people use it anymore because it's just an old insufficient language. I understand people will argue with me on this and state how C has way less overhead and it's closer to machine code and it's easier on the processor after compilation and blah blah blah. But these are all counter productive arguments at best, let me offer a few reasons why I think you should move away from C compared to these anticipated arguments.
C has less overhead:
True, but you also have to make the memory manager, library wrappers and many other low level systems. Are you a better programmer than all of the coders at Microsoft? Do you have a doctorate in computer sciences and countless certifications in programming techniques and technologies? No? Then how will you make a better performing memory management system?
C is closer to machine code:
So? The fact still remains that C (and C++) are generalized assembly compile languages. That is to say that when you compile your C or C++ program you target a specific chipset and architecture. This is normally set to a default IBM chipset that normally works decent on any machine. C# is actually an intermediary compilation language. This means that when you compile it you create a binary file that explains to your end users computer how to finish compiling the program. The first time they run your program their computer finishes the compilation process optimizing it to their specific hardware. For you to make a complex C program (like say a game) that runs as fast as it's C# clone you will need to compile your program for your customers specific hardware... In short, your closer to machine code language here is actually slowing itself down where as C# is speeding itself up.
C is faster and easier to process:
This only holds true at the very very very low levels and does not justify the slow downs that you yourself will cause trying to mimic the work that C# already provides. This comes back really to both the above points. C is generic, C# is for YOUR computer. C is bland, empty, theres hardly anything to it. C# Provides almost everything you could ever need coded and optimized by people with way more experience. When you get into the more complex features they will rely on your middle ware coding that handles memory management like functions. This is where you will lose performance in contrast to C#.
Just some final notes here, there are more tutorials and learning sources for other languages such as C++, C# and Java than there are for C. If you are not a master of the language who can answer all of your own questions you should heavily consider support material availability. Make sure that if you get stuck you will have places to turn for more information and help. Keep in mind MSDN has millions of examples, documents and tutorials on C++ and C#, gaming communities and engine websites also provide C++ and C# or Java tutorials.
Why re-invent the wheel when he could just use the numerous engines and libraries already written in C. By the way C# isn't easier for low level tasks, better off just using C/C++ and wrapping in a high level scripting language.