I know that C++ is the king in game development especially in the AAA market can anyone tell my how is C helpful I am a Computer Science student in my first year and are they any aspects of C i have to learn in depth? Thanks


closed as primarily opinion-based by Mario, bummzack, Alexandre Vaillancourt, Seth Battin, Kromster Dec 28 '15 at 18:18

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.


C is a subset of C++.

C is small and lean - a manageable subset of C++.

C++ on the other hand is huge and can be very confusing, with many questionable features and design decisions. C++ standard is gigantic.

There are quite a few notable industry figures who prefer using C. Majority of professionals use a small and very conservative subset of C++.

My suggestion - learn how to use C thoroughly before jumping in with C++11.

There are too many features in C++ that look harmless on the surface, but once you start relying on them they blow in your face - exploding compile times, indecipherable template error messages - just to name a few.

  • 5
    \$\begingroup\$ This all seems like dubious advice to me. C is not a clean subset of C++. Whether or not learning C before C++ is advisable is also up in the air and highly depends on what you're going to use C++ for. \$\endgroup\$ – PeterT Dec 26 '15 at 9:17
  • \$\begingroup\$ "C is a subset of C++" you're looking at it the wrong way. C++ is built on C. The original name given to it by Stroustrup was "C with classes". \$\endgroup\$ – Alexandre Vaillancourt Dec 26 '15 at 17:14
  • \$\begingroup\$ "but once you start relying on them they blow in your face - exploding compile times, indecipherable template error messages" This is very subjective. You can't base a language recommendation on that. \$\endgroup\$ – Alexandre Vaillancourt Dec 26 '15 at 17:21
  • 2
    \$\begingroup\$ Compile times are NOT subjective. They are very measurable. C++ compiler is slower by an order of magnitude, that's very slow. That's why there's PIMPL idiom, unity builds and precompiled headers. Including and using simple and basic features of the standart library - things like STL containers will increase the compile times dramatically. When writing C++ code not only you might think about it's run-time performance, you inevitably end up thinking (and experiencing) it's compile performance. \$\endgroup\$ – JBeurer Dec 26 '15 at 21:37
  • 1
    \$\begingroup\$ Within the context of this question, calling C a subset of C++ seems very appropriate. C is the foundation of C++. As far as learning C++ goes, you basically end up learning the vast majority of C by doing it anyway. Whether you start full on with C++11 or C is up to preference. I suggest learning C in isolation first to get a better understanding of the language. \$\endgroup\$ – JBeurer Dec 26 '15 at 21:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.