1.预处理&关键字(22道)
1.1宏定义是在编译的哪个阶段被处理的?
答案:宏定义是在编译预处理阶段被处理的。
解读:编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。
1.2写一个" 标准"宏 MIN ,这个宏输入两个参数并返回较小的一个。
答案:
#define MIN( A, B) ((A) <= (B)? ( A) : (B))
解读:
(1)注意这个题目要用三重条件操作符,在宏中要小心地把参数用括号括起来,并且整个宏也要用括号括起来,防止替换时出现错误。
(2)注意若写"least = MIN(*p++, b);"这句代码会产生副作用,将*p++代入宏体,指针p会做两次自增操作。
1.3已知数组table ,用宏求数组元素个数。
答案:

本文详细介绍了嵌入式面试中关于C语言预处理和关键字的相关问题,包括宏定义的处理阶段、MIN宏的实现、数组元素个数的计算、带参宏与函数的区别、内联函数的优缺点及适用场景,以及volatile关键字的作用和实例。内容源自牛客官方专刊,适合寻找嵌入式实习或工作的学习者参考。
最低0.47元/天 解锁文章
789

被折叠的 条评论
为什么被折叠?



