嵌入式软件面试题集锦(献给正在找工作的童鞋)

2019-12-26 18:51发布

版权声明:这些题目来源网络,野火在这里只是做了一个集锦。版权归作者(广大的无名网友)所有。

预处理器(Preprocessor)

1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)

#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

我在这想看到几件事情:

1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)

2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。

3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。

4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
fire
1楼-- · 2019-12-28 03:32
 精彩回答 2  元偷偷看……
fire
2楼-- · 2019-12-28 09:17
回复【5楼】fire 野火
-----------------------------------------------------------------------

要是你去面试嵌入式软件的话这三个关键字基本上是必考的。如果没有单独考的话,也会在程序里面考你。

不过,我们学了c语言,这三个关键字的作用都不知道的话是很说不去的呀。

ps:我们当年学的那本谭浩强c教材是没有出现过  volatile  这个关键字的(悲剧的一本书)。
avrwoo
3楼-- · 2019-12-28 13:51
MARK
wajlh
4楼-- · 2019-12-28 17:49
mark
watermarker
5楼-- · 2019-12-28 20:18
请教楼主:
*(int * const)(0x67a9) = 0xaa55;

*(int *)(0x67a9) = 0xaa55;
的优点在哪里呢?
fjh120
6楼-- · 2019-12-29 02:07
 精彩回答 2  元偷偷看……

一周热门 更多>