1 、enum { size=100} 就相当于 #define size 100 size是有作用域的
如 int main()
{
int i=10;
{
enum{ a=10,b=11}
cout<<a<<endl; //正确 //输出 10
}
cout<<b<<endl; //错误,超出作用域了,不存在b
}
2、union没有名字
union //没有类型名(有也行)
{
int i;
char c;
}; //没有名字
为匿名联合,联合中的i和c只能有一个同时有效(公用一块内存),可以在作用域直接使用这两个边量。相当于定义了两个变量int i; char c;但这两个变量公用一块内存。他们是有作用域的。和上面的enum类似。
3、命名空间没有去取名字
namespace name
{
int i;
int add(int a,int b);
}
要使用这个命名空间的这两个变量 其实是和std相同的。
如果 没有名字 如:
namespace //没有名字
{
int i;
int add(int a,int b);
}
相当于 static int i; 和 static int add(int a,int b);
转载于:https://blog.51cto.com/lihaichuan/1186598