“Name space” refers to the place the compiler keeps symbols used to refer to various program elements. The place a symbol is kept influences whether two program symbols will conflict. C has two name spaces, but C++ maintains only one name space.
The two C name spaces are:
Variable, function, typedef, and enumerator name space
Structure, enumeration, and union tag name space
In C++, all these names share a single name space.