这篇博客记录一下一些变量名之类的东西
volatile
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
• 并行设备的硬件寄存器(如:状态寄存器);
•一个中断服务子程序中会访问到的非自动变量(Non-automatic variables);
• 多线程应用中被几个任务共享的变量。
@required @optional
@required @optional 专门修饰协议中的方法的,
在协议当中,方法的声明,被@required修饰,那么就准守这个协议的类,必须实现这个方法,否则就会发出警告
被@optional修饰,那么准守这个协议的类,可以实现这个方法,也可以不实现这个方法,不实现编译器也不会报警告。
唯一的区别,就是当遵守协议的类,而不实现协议中的方法的时候,@required会给一个警告,@optional不会又警告的
这两个关键字的主要擢用,在于程序员的沟通,告诉准守协议的类,那些方法必须实现的,因为这个会调用,默认情况下是@required