嵌入式C语言面试题笔试题

一、常见的关键词:sizeof(strlen)、static、const、volatitle(会持续更新)

1、sizeof和strlen的区别

(1)sizeof是求数据类型所占空间的大小,是一个操作符,在编译时计算出结果。

(2)Strlen是求以\0结尾的字符串的实际长度,是一个函数,在运行时才运算出结果,使用strlen求长度时候要进行初始化。

2、static通过被问作用,以及在程序中有两个陷阱需要注意:函数中static修饰局部变量和static修饰全局变量

(1)static定义的全局变量只能在本文件中使用

(2)加了static的局部变量会延长其生命周期,存在于整个程序的执行过程。但是其他函数无法使用。

(3)static函数只会在该模块中可见

3、const通常考察作用

(1)通常是定义常量

(2)修饰函数参数 返回值,被修饰的东西会被保护起来,不会改变。

4、volatile通常考察作用和使用环境

Volatile修饰的变量说明该变量的值会随时发生变化的,每次用的时候需要从存储该变量的地址中直接获取。

(1)中断服务程序中修改的供其他程序检测的变量需要加Volatile。

(2)多任务环境下个任务间共享的标志位需要加Volatile。

(3)存储器映射的硬件寄存器通常也要加Volatile。

5、extern:extern标识的变量或者函数声明定义在别的文件中,提示编译器遇到此变量和函数时候在其他模块中寻找其定义。

extern和typedef的不同在于:

(1)typedef是用来定义一种数据类型的别名,增强程序的可读性。而define主要是用来定义常量,以及书写复杂和使用频繁的宏定义。

(2)执行时间不同:typedef是编译过程的一部分,有类型检查的功能。define是宏定义,是预编译的部分,其发生在编译之前。

(3)作用域不同:typedef有作用域限定。define不受作用域约束,只要是在define声明后的引用都是正确的。

(4)对指针的操作不同:typedef和define定义的指针时有很大的区别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值