当前位置: 首页 > news >正文

西安制作网站需要多少钱网站图片大小多少合适

西安制作网站需要多少钱,网站图片大小多少合适,公司品牌网站建设价格低,杭州仪器网站制作嵌入式八股(持续更新) 一、C 1. inline和宏定义的区别: inline是一个关键字,是建议编译器直接将函数体插入到调用处,避免频繁调用函数造成的开销;inline只是建议,是否将函数内联需要编译器自己判…

嵌入式八股(持续更新)

一、C++

1. inline和宏定义的区别:

  • inline是一个关键字,是建议编译器直接将函数体插入到调用处,避免频繁调用函数造成的开销;inline只是建议,是否将函数内联需要编译器自己判断函数是否复杂等情况;一般用于频繁调用的简单函数;
  • 宏定义:是预处理指令集,在编译前进行文本替换,不会进行类型检查;

2. malloc/free和new/delete的区别
malloc和new都用于动态内存管理,但是他们属于不同的机制;

  • malloc/free:是C标准库函数,返回的是void*,需要强制类型转换;不会调用构造函数和析构函数;
  • new/delete:是C++运算符,C++特有,自动返回正确类型的指针;自动调用构造函数和析构函数;

3. 空指针、野指针如何避免?

  • 空指针是创建一个指针但是没有指向任何内容,是一个合法的操作;一般用于指针初始化;
  • 野指针是指向的内容是不可预测或无效的;避免的话,首先就是指针指向的内存删除后,将指针删除或者nullptr;其次可以使用智能指针或者RAII方法;

4. struct和union的区别?

  • struct和union都是结构体,允许将多个数据类型组合在一起;
  • struct会为每一个对象都分配一个内存空间,允许一次使用多个对象;
  • union所有对象共用同一块内存(内存总量即为最大对象的内存空间),每次只能使用一个对象;

5. 什么是工厂模式?

  • 工厂模式就是将类的创建和使用分离,通过构造一个工厂抽象类,由该类来生产对象,用户只需要提供要使用的类型即可;

6. vector和list的底层逻辑

  • vector是一个封装了动态数组的类,包含3个指针,分别指向头、要插入的位置指针以及最大内存指针;
  • list的底层是双向链表,适合频繁的插入,但是不适合随机访问;

7. 动态链接/静态链接

  • 静态链接时在编译的时候就将依赖库的代码一起编译进入最终的可执行文件中;可执行文件大;不依赖于外部的库文件;
  • 动态链接是在程序运行的过程中才加载所需要的库代码,依赖共享库;可执行文件小,依赖外部库文件;

8. 函数重载和函数重写的区别?

  • 函数重载就是在同一个作用域中定义函数名相同,但是输入输出参数不同的函数,这样我们在访问这些函数的时候只需要不同的输入参数即可区分;
  • 函数重写就是实现多态时候用到的方法,基类中父函数必须为虚函数,子类中通过覆盖重写父函数;

9. 编译流程

  • 预处理:对宏定义、头文件库以及预处理条件进行预处理(.i)
  • 编译:将预处理后的代码编译为汇编语言(.s)
  • 汇编:将汇编语言转为机器码(.o)
  • 链接:将多个.o文件以及库文件链接到一起

10. 长连接、短链接?

  • 短链接就是客户端与服务器进行通信,每次通信完成后都断开连接;
  • 长连接是通信后不断开连接,只到一方主动断开;

11. vector的数据储存在栈上还是堆上?

  • vector的元数据(指针、容量、指向堆内存的指针)储存在栈上、数组的具体元素储存在堆上

12. C++智能指针的了解?weak_ptr的用处?shared_ptr循环引用问题?

  • C++智能指针就是创建的指针使其在生命周期结束后自动销毁的技术(RAII),避免内存泄漏;类别包括shared_ptr、unique_ptr以及weak_ptr;
  • shared_ptr会出现循环引用的逻辑闭环错误,即两个对象都持有对方的shared_ptr指针,这样这两个指针永远也无法销毁;
  • 解决办法就是一个使用shared_ptr(强引用),一个使用weak_ptr(弱引用);

13. linux调度策略?cfs?

  • linux目前主要流行的调度策略为(CFS,Completely Fair Scheduler)完全公平调度器,用于普通非实时的进程;
  • 原理:调度器会为每一个进行设置一个虚拟运行时间(vruntime),表示该进程已经运行的时间,调度器每次都会选择vruntime最小的进程来运行,来保证公平性;

14. 对上下文切换的理解?如何通过代码优化来减少频繁的上下文切换开销?

  • 上下文切换是操作系统调度的基本机制,但在高并发场景中会造成明显性能损耗。我们可以通过减少线程数或线程池、降低锁竞争(避免频繁的阻塞)、使用协程、优化系统调用等方式来显著减少上下文切换带来的开销;

15. 对于linux内存管理的了解?对虚拟内存的了解?

  • Linux 的内存管理机制是操作系统中最核心、最复杂的部分之一。它负责高效地分配、回收和保护进程使用的内存资源,同时提供虚拟内存、分页机制、缓存管理等功能;
  • 虚拟内存是物理内存的映射,为了使进程看到的内存空间是连续的,其通过页表完成地址转换;

16. poll/select/epoll的区别?

17. OSI七层模型?

  • (物理层->链路层)->网络层->传输层->(会话层->表示层->应用层)
  • TCP四层模型:网络接口层->网络层->传输层->应用层;
  • 对应协议:物理层(以太网,MAC等);网络层(IP);传输层(TCP、UDP);应用层(HTTP、FTP等);
http://www.dtcms.com/a/471558.html

相关文章:

  • 网站开发后端所需要的语言南和邢台网站制作
  • SpringBoot集成:5分钟实现HTML转PDF功能
  • 深圳外贸网站推广公司学做网站书籍
  • 做直播网站视频教程大连网络运营
  • 凤岗做网站国家工商网查询企业信息
  • 个人项目开发(1):使用Spring Secruity实现用户登录
  • 建一个网站大约花多少钱网站建设的整个过程
  • SNMP Trap(告警上报)在 v1 与 v2 版本中节点(OID)或事件描述不一致的问题解决
  • 机器视觉的光纤检测应用
  • 东莞建外贸网站好济南定制网站建设
  • 【agent】AI 数字人构建7:Open-LLM-VTuber使用pycharm配置uv解释器及本地sherpa-onnx实现 tts
  • 网站设计的优点js网页特效
  • wordpress动静分离七牛徐州seo公司
  • 网站推广平台搭建软件设计开发
  • 唐山软件开发公司排名惠州搜索引擎优化
  • 河北通信网站建设google seo怎么优化
  • 推广网站的图片怎么做宁波知名seo关键词优化
  • 网站建设预算计算方法2022网页游戏排行榜前十名
  • 网站开发需要哪些知识和工具wordpress官方主题论坛
  • 湘潭企业网站建设做类似知乎网站
  • 宇宙中的“未知之门“:多维时空理论中的神秘通道
  • 系统难还是网站设计难做仙居手机网站开发
  • 算法精讲:广度优先搜索(BFS)——从原理到实战的完整指南
  • 做网站需要icp吗网站建设dede模板免费
  • 好用的土木建筑网站汕头高端网站建设
  • MySQL数据库面试高频问题及解析
  • 怎么用自己的电脑做网站服务器爱企业工商信息查询系统
  • 无锡游戏网站建设公司作文生成器网站
  • .概述网站建设的基本流程哪个网站可以做鸟瞰图
  • 做网站要学云南免费网站建设