ANSI-C doesn't recognize classes, templates, basically everything C++. Also, ANSI-C handles scoping for nested structs by ANSI-C rules, not C++ rules.
If your code is straight C, and not clean enough to just be parsed as if it were C++, like the Linux kernel headers, then you want to use the ANSI-C document mode for those files.
Most other things are the same with respect to syntax expansion and smart editing and tagging.