I've been exposed to numerous coding guidelines, every one of them giving guidelines for naming 'things'. One specific C89 naming rule triggered this question: It was explicitly forbidden to use the name 'new' for a variable, because in C++ this is a keyword.
This started me thinking about the next standards, C99 is well documented, but C11 is relatively new (2014). And the Standards committee has several extensions still in the works.
Therefore I'm wondering if someone can provide a list with keywords and their origins, in order to make a set of naming rules, including the reasons why several names are to be avoided.
And although strictly spoken complex
is not a keyword, similar definitions would best be included. And C++ information is also appreciated.