The comment to this answer got me wondering. I\'ve always thought that C was a proper subset of C++, that is, any valid C code is valid C++ code by extension. Am I wrong a
In general, yes C code is considered C++ code.
But C is not a proper subset in a strict sense. There are a couple of exceptions.
Here are some valid things in C that are not valid in C++:
int *new;//<-- new is not a keyword in C
char *p = malloc(1024); //void * to char* without cast
There are more examples too, but you get the idea.
I previously wrote a more extensive answer in a similar question here.