有学员建议我们多发一些面试题为他们面试添砖加瓦,诺,这篇就是。 转载于CU技术社区,原文标题:经典回顾:16道嵌入式C语言面试题
可以看出我裁剪了不少,而且严格的来说原文写的不够流畅,有些句子不通顺。不过还是应该感谢作者But_Bueatiful。
预处理器(Preprocessor)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
答: #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情:
1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2) 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3) 意识到这个表达式将使一个16位机的整型数溢出, 因此要用到长整型符号L, 告诉编译器这个常数是长整型数。
4) 如果你在表达式中用到UL(表示无符号长整型),那么可能这就给面试者留下了很好的第一印象。记住第一印象很重要。
2 . 写一个”标准”宏MIN ,这个宏输入两个参数并返回较小的一个。
答: #define MIN(A,B) ((A)
