一 static关键字用法
所有方法都可以访问静态数据,但是静态函数,却不用访问非静态成员!!!
静态函数,用类去调用,不要用对象,否则是错误的。!!!
静态类,所有成员,必须是静态的。
如果想你的静态数据没有被修改,那么可以用staticreadonly
全局变量和全局静态变量的区别
1)全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。
2)全局静态变量是显式用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。
静态局部变量有以下特点:
1) 该变量在全局数据区分配内存;
2) 静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不
再进行初始化;如果没有显式初始化,会被程序自动初始化为0;
3) 它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义
它的函数或语句块结束时,其作用域随之结束;
2.extern的用法:
3.volatile的用法:
当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;
2、多任务环境下各任务间共享的标志应该加volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;
volatile 修饰符通常用于由多个线程访问而不使用 lock 语句来序列化访问的字段。使用 volatile 修饰符能够确保一个线程检索由另一线程写入的最新值。
4.sealed 修饰符
sealed 修饰符表示密封用于类时,表示该类不能再被继承,不能和 abstract 同时使用,因为这两个修饰符在含义上互相排斥用于方法和属性时,表示该方法或属性不能再被重写,必须和 override 关键字一起使用,因为使用 sealed 修饰符的方法或属性肯定是基类中相应的虚成员通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继承的类以防止滥用继承造成层次结构体系混乱恰当的利用 sealed 修饰符也可以提高一定的运行效率,因为不用考虑继承类会重写该成员。