statics
在c中有三种用法(面向过程的编程):
1.全局静态变量(静态储存区),全局变量前加表示这个变量在文件内可见,在文件外不可见。
2.局部静态变量(静态储存区),在局部变量前加表示这个变量在离开这个作用域之后就不可以访问了,直到这个函数再次被调用,而且他的值不会变。
3.静态函数: 在返回值类型前加statics 函数的定义和声明都是extern的,但是静态函数只能在声明他的文件中可见,不可被其他的使用。
在cpp中(面向对象):
1.类的静态成员:
class A{
private:
statics int val;
};
val必须被初始化,初始化时用作用域运算符表示他的类,属于该类所有成员公有,只有一份。
2.类的静态成员函数:
class A{
private:
static int func(int x);
};
使用的时候不需要statics ,类的静态函数表示是该类的范畴内的全局函数,不能访问类的私有成员,不需要类的实例就可以调用,只能访问类的静态成员。(增加了类的访问权限的全局函数)
3.只在cpp内有效的全局变量: 只在当前文件内可用 同C1
4.只在cpp内有效的全局函数:只在当前文件内可用的函数C1