摘要:
下面的代码片段的输出是什么?为什么? 解析:这是一道动态内存分配(Dynamic memory allocation)题。 尽管不像非嵌入式计算那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程。面试官期望应试者能解决内存碎片、碎片收集、变量的执行时间等问题。这是一个有趣的问题。故意把0 阅读全文
摘要:
在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。 解析:这一问题测试你是否知道为了访问一个绝对地址把一个整型数强制转换(typecast)为一个指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的代码如下: 阅读全文
摘要:
这段C程序的结果是多少? 嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,16bit宽的数0x1234在Littl 阅读全文
摘要:
关键字static的作用是什么? 解析:这个简单的问题很少有人能回答完全。大多数应试者能正确回答第一部分,一部分能正确回答第二部分,但是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。答案:在C语言中,static关键字至少有下列几个作用:● 阅读全文
摘要:
关键字const有什么含意?下面的声明都是什么意思? 解析:只要一听到被面试者说“const意味着常数”,面试官就知道自己正在和一个业余者打交道。因为ESP(Embedded Systems Programming,嵌入式系统编程)的每一位求职者都应该非常熟悉const能做什么和不能做什么。正确的说 阅读全文
摘要:
我们经常使用“volatile”这个关键字,它是什么意思? 解析:volatile问题。当一个对象的值可能会在编译器的控制或监测之外被改变时,例如一个被系统时钟更新的变量,那么该对象应该声明成volatile。因此编译器执行的某些例行优化行为不能应用在已指定为volatile的对象上。volatil 阅读全文
摘要:
请看下面的程序(一个中断服务子程序ISR),请指出这段代码的错误。)[中国台湾某著名CPU生产公司2005年面试题] 答案:(1)ISR不能返回一个值。如果你不懂这个,那么是不会被雇用的。(2)ISR不能传递参数。如果你没有看到这一点,被雇用的机会等同第一项。(3)在许多处理器/编译器中,浮点一般都 阅读全文
摘要:
给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a的bit 3。在以上两个操作中,要保持其他位不变。 答案: 阅读以下代码,写出程序运行结果。[中国著名杀毒软件企业J公司2008年4月面试题] 解析:15×4(字节)=60所以要求输出的十六进制结果是3C。这样在大系统里面使用未初 阅读全文
摘要:
A.5B.7C.9D.11解析:13如果是一个十进制的话,它可以用13=1*101+3*100来表示。现在我们不知道13是几进制,那我们姑且称其X进制。X进制下的13转化为十进制可以用13=1*X1+3*X0;表示;X进制下的16转化为十进制可以用16=1*X1+6*X0;表示;X进制下的244转化 阅读全文
摘要:
写出下面程序的运行结果。[德国某著名软件咨询企业2005年10月面试题] 解析:这是我所见到的概率面试例题中出得非常好的一道。从表面上看,你完全无法看出它是一个概率问题。这里暗含的思想是一个1/4圆和一个正方形比较大小的问题,如下图所示。 RAND_MAX是随机数中的最大值,也就是相当于最大半径R。 阅读全文