栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

嵌入式软件面试高频基础——C语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

嵌入式软件面试高频基础——C语言

一、构造函数与析构函数用法与区别

构造函数:是一种特殊的方法,一个类也可以有很多构造函数,可以根据其参数不同或者参数类型不同来区分,也就是重载。可以为对象成员赋初始值。常常与new运算符一起使用在创建对象的语句中。

析构函数:对象所在的函数已调用完后,系统自动调用析构函数。进行清理善后工作。

二、内联函数和宏定义区别

1、内联函数和普通函数相比可以加快程序的运行速度,因为不需要进行函数切换,在编译时内联函数可以直接被镶嵌到目标代码中,而宏只是一个简单的替换,在预处理阶段被换到主函数中。

2、内联函数需要做参数类型检查,这也是内联函数与宏定义相比的优点。

3、内联函数是嵌入代码,执行时不需要跳转,当内联函数短小时,占用空间,但是效率提高。

内联函数适用情况:1、函数需要被反复调用。2、函数只有短短几行。(内联函数需要与函数体一起定义,在定义函数时定义毫无意义,例:inline void foo()  {  })

三、strcpy与memcpy区别

1、strcpy只可以复制字符串,而memcpy可以复制任何内容,例如字符串、数组、整型数等。

2、strcpy不需要指定长度,遇到‘’结束,容易溢出。而memcpy可以指定复制的长度。

四、iic为什么要接上拉电阻

因为要让iic输出高电平,因为iic是开漏输出,输出不来高电平,所以外接上拉电阻帮助其上拉。

五、iic为什么要延时5us

I2C驱动EEPROM的时序要严格按照下图:

 cortexm3的指令有单周期的,也有多周期的,3级流水线相当于同时处理3条指令,这同时被处理的3条指令处于指令执行周期的不同时段。所以平均下来,会达到1.25mips/Mhz的效果,也就是每个时钟周期能够执行超过一条指令。但具体到程序,并不是总能达到这个效果。写和读之间也必须有延时,不可以写之后立刻读。需要延时相当长一段时间。读操作没有时间要求,写操作一次最多8字节,需要得到10ms以上来固化数据。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835680.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号