简单的解释下static extern const 的区别和作用域,该如何处理

简单的解释下static extern const 的区别和作用域
同题

------解决方案--------------------
对于全局变量来说,static的作用域仅在当前编译单无,而extern则是整个程序。
const变量默认是static的的,如果要指定为extern需显式写明,比如:extern int i。

但带有“const”的不一定是const变量,比如:
const char* p;
这里只是代表变量p指向的是常量字符,并非指p是个常量,因此这里的p也不会被默认为static。

在类域中,static成员隶属于整个类,而不是每个类的实例(对象)。可以不生成实例,而直接用通过类名访问,非static成员只能从对象上访问。

在函数域中,static局部变量虽然作用域是在函数内部,但这个变量在函数退出后却仍然存在,它在函数第一次被调用时初始化,生存期一直持续到程序结束。最直接的证据是下次函数再被调用时,它还能保持上次的值。