嵌入式软件研发面试题目

时间:2012-12-03 14:55:07
【文件属性】:

文件名称:嵌入式软件研发面试题目

文件大小:51KB

文件格式:DOC

更新时间:2012-12-03 14:55:07

考查指针,这道题只适合于那些特别细心且对指针和数组有深入理解的人

#includestatic jmp_buf buf;main() { volatile int b; b =3; if(setjmp(buf)!=0) { printf("%d ", b); exit(0); } b=5; longjmp(buf , 1);} 请问,这段程序的输出是 (a) 3 (b) 5 (c) 0 (d) 以上均不是 第1题: (b) volatile字面意思是易于挥发的。这个关键字来描述一个变量时,意味着 给该变量赋值(写入)之后,马上再读取,写入的值与读取的值可能不一样,所以说它"容易挥发"的。 这是因为这个变量可能一个寄存器,直接与外部设备相连,你写入之后,该寄存器也有可能被外部设备的写操作所改变;或者,该变量被一个中断程序,或另一个进程 改变了. volatile 不会被编译器优化影响,在longjump 后,它的值 是后面假定的变量值,b最后的值是5,所以5被打印出来.


网友评论

  • 虽然不是原创的,还是鼓励一下