ANDing 16bit values

GolamMostafa:

C is a classic low-level procedural programming language while C++ is a superset of C that is both procedural and object-oriented. Both C and C++ are commonly used languages and though C++ is derived of C both languages need to be approached differently.

I have no idea where you got that quote, but it's simply not true.
The rules surrounding unions being different like we discussed is one of the reasons why C++ is not a superset of C. Code that uses unions for type punning is valid C, but not valid C++.

There are many other subtle differences as well, different keywords, declarations ... I was going to include them here, but you can just google it.

"Superset" does not have a precise meaning when used outside of its mathematical context. However, it should convey the idea that absolutely everything in A, is also in B (A is completely contained in B). Otherwise, it's an intersection. If there is anything at all in C that is not also in C++, then it doesn't meet the Superset criteria.

GolamMostafa:

C is a classic low-level procedural programming language while C++ is a superset of C that is both procedural and object-oriented. Both C and C++ are commonly used languages and though C++ is derived of C both languages need to be approached differently.

Reminds me of one of my favorite quotes:

You can't believe everything you read on the Internet.

—Abraham Lincoln