Volatile
8. 关键字volatile 有什么含意并给出三个不
同的例子。
一个定义为volatile的变量是说这变量可能会
被意想不到地改变,这样,编译器就不会去假设这
个变量的值了。精确地说就是,优化器在用到这个
变量时必须每次都小心地重新读取这个变量的值,
而不是使用保存在寄存器里的备份。下面是volatile
变量的几个例子:
1). 并行设备的硬件寄存器(如:状态寄存器)
2). 一个中断服务子程序中会访问到的非自
动变量(Non-automatic variables)
3). 多线程应用中被几个任务共享的变量
回答不出这个问题的人是不会被雇佣的。我认
为这是区分C 程序员和嵌入式系统程序员的最基
本的问题。嵌入式系统程序员经常同硬件、中断、
RTOS等等打交道,所用这些都要求volatile变量。
不懂得volatile内容将会带来灾难。
假设被面试者正确地回答了这是问题(嗯,怀
疑这否会是这样),我将稍微深究一下,看一下这
家伙是不是直正懂得volatile完全的重要性。
1). 一个参数既可以是const 还可以是volatile
吗?解释为什么。
A.在办理跨区域涉税事项报告时只需填报《跨区域涉税事项报告表》
B.工程结束后向经营地主管税务机关填报《经营地涉税事项反馈表》
C.合同延期的,需要再次向机构所在地税务机关申请办理跨区域涉税事项报告手续
D.跨区域经营活动结束后,需向机构所在地税务机关进行反馈,提交《经营地涉税事项反馈表》
E.跨区域经营活动结束后,不需要另行向机构所在地税务机关提交《经营地涉税事项反馈表》
生日会上的12 个小孩
今天是我 13 岁的生日。在我的生日宴会上,包括我共有12 个小孩相聚在一
起。每四个小孩同属一个家庭,共来自A,B 和C 这三个不同的家庭,当然也包
括我所在的家庭。有意思的是,这12 个小孩的年龄都不相同,最大的13 岁,换
句话说,在1 至13 这十三个数字中,除了某个数字外,其余的数字都表示某个
孩子的年龄。我把每个家庭的孩子的年龄加起来,得到以下的结果:
家庭A:年龄总数41,包括一个12 岁的孩子。
家庭B:年龄总数m,包括一个5 岁的孩子。
家庭C:年龄总数21,包括一个4 岁的孩子。
只有家庭A 中有两个孩子只相差1 岁的孩子。
你能回答下面两个问题吗:我属于哪个家庭——A,B,还是C?每个家庭中
的孩子各是多大?
(1)食品公司向三家水泥厂分别发函的行为,在《合同法》上属于什么行为?三家水泥厂回函的行为是什么行为?食品公司第二次向新华水泥厂发函的行为是什么行为?食品公司与新华水泥厂之间的买卖合同是否成立?为什么?(2)建设水泥厂与食品公司之间的买卖合同是否成立?食品公司有无义务接受建设水泥厂发来的货物?本案中建设水泥厂的损失应由谁承担?