=
这 个问题测试你是否懂得 语言中的整数自动转换原则,我发现有些开发者懂得极
少这些东西。不管如何,这无符号整型问题的答案是输出是 ,S#,。原因是当表达
式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此*
变成了一个非常大的正整数,所以该表达式 计算出的结果大于 #。这一点对于
应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个
问题,你也就到了得不到这份工作的边缘。
&评价下面的代码片断:
B3>36T1:
B3>36DT1????:
$UD4D65T$
对于一个 36 型不是 # 位的处理器为说,上面的代码是不正确的。应编写如下:
B3>36DT1P:
这一问题真正能揭露出应试者是否懂得处理器字长的重要性。在我的经验里,好的
嵌入式程序员非常准确地明白硬件的细节和它的局限,然而 机程序往往把硬件
作为一个无法避免的烦恼。
到 了这个阶段,应试者或者完全垂头丧气了或者信心满满志在必得。如果显然应试
者不是很好,那么这个测试就在这里结束了。但如果显然应试者做得不错,那么我
就 扔出下面的追加问题,这些问题是比较难的,我想仅仅非常优秀的应试者能做得
不错。提出这些问题,我希望更多看到应试者应付问题的方法,而不是答案。不管
如 何,你就当是这个娱乐吧
动态内存分配(A8D3DDA844863)
%尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(78)中动态分
配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么?
这 里,我期望应试者能提到内存碎片,碎片收集的问题,变量的持行时间等等。这
个主题已经在 杂志中被广泛地讨论过了(主要是 V48B>+他的解释远远
超过我这里能提到的任何解释),所有回过头看一下这些杂志吧!让应试者进入一
种虚假的安全感觉后,我拿出这么一个小节目:
下面的代码片段的输出是什么,为什么?
78$6:
356178$D84411())
B6,W68B4436,:
4
B6,W68J84336,:
这是一个有趣的问题。最近在我的一个同事不经意把 值传给了函数 D844,得到