文章目录
- 前言
- 一、预处理&关键字
-
- 1、宏定义是在编译的哪个阶段被处理的?
- 2、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
- 3、已知数组table,用宏求数组元素个数。
- 4、带参宏和函数的区别?
- 5、内联函数的优缺点和适用场景是什么?
- 6、关键字volatile的作用是什么?给出三个不同的例子。
- 7、如何用C语言实现读写寄存器变量?
- 8、下面代码能不能编译通过?
- 9、“在C语言中,凡是以#开头的都是预处理命令,同时预处理命令都是以#开头的”,这句话是正确的吗?
- 10、预处理器标识#error的作用是什么?
- 11、用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。
- 12、关键字static的作用是什么?
- 13、下面是关键字const的使用示例,请说明它们的作用:
- 14、一个参数既可以是 const 还可以是 volatile 吗?一个指针可以是 volatile 吗?下面的函数有什么问题?
- 15、关键字 typedef 在 C 语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子:
- 16、关键字 sizeof 的作用是什么?函数 strlen() 呢?
- 17、关键字 extern 的作用是什么?
- 18、extern”C” 的作用?
- 19、关键字 auto 的作用是什么?
- 20、关键字 register 的作用是什么?使用时需要注意什么?
- 21、C 语言编译过程中,关键字 volatile 和 extern 分别在哪个阶段起作用?
- 22、const 与 #define 的异同?
前言
记录一些招聘公司在招聘嵌入式软件岗位时的一些问题,此文为第二篇。
一、预处理&关键字
1、宏定义是在编译的哪个阶段被处理的?
答:宏定义是在编译预处理阶段被处理的。
解读:编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。
2、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
答:
#define MIN(A, B) ((A