Volatile 8. 关键字volatile 有什么含意并给出三个不 同的例子。 一个定义为volatile的变量是说这变量可能会 被意想不到地改变,这样,编译器就不会去假设这 个变量的值了。精确地说就是,优化器在用到这个 变量时必须每次都小心地重新读取这个变量的值, 而不是使用保存在寄存器里的备份。下面是volatile 变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自 动变量(Non-automatic variables) 3). 多线程应用中被几个任务共享的变量 回答不出这个问题的人是不会被雇佣的。我认 为这是区分C 程序员和嵌入式系统程序员的最基 本的问题。嵌入式系统程序员经常同硬件、中断、 RTOS等等打交道,所用这些都要求volatile变量。 不懂得volatile内容将会带来灾难。 假设被面试者正确地回答了这是问题(嗯,怀 疑这否会是这样),我将稍微深究一下,看一下这 家伙是不是直正懂得volatile完全的重要性。 1). 一个参数既可以是const 还可以是volatile 吗?解释为什么。