没有合适的资源?快使用搜索试试~ 我知道了~
首页几道常见的嵌入式开发C语言面试题
资源详情
资源评论
资源推荐

、嵌入式系统中经常要用到无限循环,你怎么样用 编写死循环呢?
这个问题用几个解决方案。我首选的方案是:
一些程序员更喜欢如下方案:
这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个
作为一个机会去探究他们这样做的
基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会给我留下一个坏印象。
第三个方案是用
应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的
程序员。
!、关键字 "# 有什么含意并给出三个不同的例子。
一个定义为 "# 的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确
地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
下面是 "# 变量的几个例子:
并行设备的硬件寄存器(如:状态寄存器)
!一个中断服务子程序中会访问到的非自动变量 $%#&'#("##)*
+多线程应用中被几个任务共享的变量
回答不出这个问题的人是不会被雇佣的。我认为这是区分 程序员和
嵌入式系统
程序员的最基本的问题。嵌入式系统
程序员经常同硬件、中断、 等等打交道,所用这些都要求 "# 变量。不懂得 "# 内容将会带来灾难。
假设被面试者正确地回答了这是问题(嗯,怀疑这否会是这样),我将稍微深究一下,看一下这家伙是不是直正懂得
"# 完全的重要性。
一个参数既可以是 ($* 还可以是 "# 吗?解释为什么。
!一个指针可以是 "#吗?解释为什么。
+下面的函数有什么错误:
$*,&#"#$-
&$---
下面是答案:
是的。一个例子是只读的状态寄存器。它是 "# 因为它可能被意想不到地改变。它是 ($* 因为程序不应该试
图去修改它。
!是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个 )&. 的指针时。
+这段代码的有个恶作剧。这段代码的目的是用来返指针- 指向值的平方,但是,由于- 指向一个 "# 型
参数,编译器将产生类似下面的代码:
$*,&#"#$-
$#/)
#0-
)0-
&$#-)
由于- 的值可能被意想不到地该变,因此 # 和 ) 可能是不同的。结果,这段代码可能返不是你所期望的平方值!
正确的代码如下:
$*,&#"#$-

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1