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

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(一)

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(一)

在这里插入图片描述

你好,我是拉依达。
感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。

《拉依达的嵌入式\驱动面试宝典》 最开始我个人的面试学习笔记,里面整合了所有我认为可能遇到的技术面试问题。随着我个人的学习以及参与面试,对内容不断完善。现在我已经步入工作阶段,空闲时间将之前的学习内容进行重新编排整理,并且加入了工作后更新系统的理解。是所有博客中投入最大的一个系列。包含我个人学习中所有的精华内容,希望可以最大限度的帮助到你。

所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到独一无二。

其中包含嵌入式软件开发、嵌入式驱动开发、linux驱动开发等职位遇到的所有技术方向问题。尤其是对驱动等底层问题的解析,适合准备相关工作或者学习提升的同学

————————————————————————————————————

第1章 C/CPP基础

1.1 编译

头文件的两种包含方式的区别

  • #include <> 的查找位置是系统目录,是标准库头文件所在目录;
  • #include “” 的查找位置是当前源文件所在目录 , 找不到再去系统目录;

动态库(.so/.dll)与静态库(.a/.lib)的区别

文件后缀不同

  • 静态库,linux系统下:xxx.a;window系统下:xxx.lib
  • 动态库,linux系统下:xxx.so;window系统下:xxx.dll

链接时期不同

  • 静态库是在链接阶段与其它.o文件链接成可执行程序,所以可执行程序体积相对较大
  • 动态库是在可执行文件运行时再加载到内存中

占用磁盘大小不同

  • 有n个可执行文件引用了同一个静态库,那么该静态库在磁盘中就有n个拷贝
  • 有n个可执行文件引用了同一个动态库,那么该动态库在磁盘中只有1个拷贝

库的发布方式不同

  • 修改静态库,除了重新编译静态库之外,还需要重新编译程序,再将程序发布出去
  • 修改动态库,只需要重新编译动态库,只发布动态库即可

程序启动速度不同

  • 使用静态库的程序启动速度较快,因为不需要花时间加载库
  • 使用动态库的程序启动速度较慢,因为需要花时间将动态库加载到内存

简述gcc编译过程

预编译、编译、汇编和链接

  1. 预编译阶段:hello.c–>hello.i , 加入头文件,替换宏,用于处理#开头的指令
  2. 编译阶段:hello.i–>hello.s , c/cpp程序转换成汇编程序
  3. 汇编阶段:hello.s–>hello.o , 将汇编程序转换成可链接的二进制程序
  4. 链接阶段:hello.o–>hello , 可链接的二进制程序和其它别的库链接在一起,形成可执行的程序文件。

静态链接和动态链接

  • 静态链接:链接过程把需要内容已经链接到了生成的可执行文件中,删除静态库程序运行不影响
  • 动态链接:链接过程没有把内容链接进去,而是在执行的过程中,再去找要链接的内容,删除动态库程序不能运行

静态链接优缺点:(动态链接相反)

  • 优点:运行不需要库
  • 缺点:编译出程序大,更新模块要全部重新编译

动态库内的内存分配

  • 动态库和主调程序分别编译的,使用2个不同的堆。
  • 堆各自管理各自的,谁负责分配,谁就负责释放(一个模块分配的内存要在同一个模块中释放!)
  • 将动态库中申请到的堆内存的指针交给主调程序去释放时,主调程序的堆管理部分就会发现这个指针不合法,就失败了。

C提高编程技巧

  1. 空间换时间

    • 使用宏函数而不是函数,宏函数占用了大量的空间,而函数占用了时间。函数调用时保存和恢复当前的现场,进行压栈和弹栈操作。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所以仅仅是占用了空间
  2. 使用位操作:减少除法和取模的运算

  3. 使用嵌入式汇编:提高效率,限制可移植性

C模块划分

  1. 模块即是一个.c 文件和一个.h 文件的结合,头文件(.h)中是对于该模块接口的声明;
  2. 某模块提供给其它模块调用的外部函数及数据需在.h 中文件中冠以 extern 关键字声明;
  3. 模块内的函数和全局变量需在.c 文件开头冠以 static 关键字声明;
  4. 永远不要在.h 文件中定义变量!定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概
    念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量。

统计数值中1的个数

int nums( int date)
{int num = 0;for(int i=0 ; i<32 ; i++){num += (date>>i)&0x01;}return num;
}
//更快速的方法是直接建立一个表,然后查表

对某一位置1或置0

//对一个char的第三位置0或置1
unsigned char c = 0x07;
c |= (0x01<<2); //置1
c &= ~(0x01<<2); //置0

对指定地址存储数据

int *p = (int *)0x12345678;
*p = 10;

c语言运算符优先级

优先级运算符类型运算符结合性
1后缀() [] -> . ++ –左到右
2一元++ – + - ! ~ (type)* & sizeof右到左
3乘法* / %左到右
4加法+ -左到右
5移位<< >>左到右
6关系< <= > >=左到右
7相等== !=左到右
8位与&左到右
9位异或^左到右
10位或|左到右
11逻辑与&&左到右
12逻辑或||左到右
13条件? :右到左
14赋值= += -= *= /= %= <<= >>= &= ^= |=右到左
15逗号,左到右

C语言面向对象实现多态

#include "stdio.h"typedef struct Person{char *name;void (*eat)();
}Person;void fun1(){printf("student eat!\r\n");
}
void fun2(){printf("teacher eat!\r\n");
}int main()
{Person student={"student",fun1};Person teacher={"teacher",fun2};student.eat();teacher.eat();
}

C++代码优化?

  1. 循环外移。
  2. 减少函数调用。(inline)
  3. 右值引用。

1.2 内存

堆和栈的区别?

  • 分配和回收机制不同——堆由程序员手动开辟与回收,栈由系统自动分配和回收
  • 存放内容不同——堆存你想存的数据,栈存放函数的相关参数,返回值,局变量,寄存器内容等
  • 地址增长方式不同——堆向地址增大方向增长,栈反过来
  • 大小不同——堆可开辟,理论课开辟整个虚拟内存,栈有上限
  • 效率——堆开辟慢,栈系统开辟快

哈希冲突?

​ 主要是通过哈希函数产生的哈希值是有限的,当数据比较多的时候,不同的元素经过相同的哈希函数产生了相同的值,这就是哈希冲突。

解决办法:

  1. 线性探测法
  2. 链式地址法
  3. 再散列法(哈希冲突的时候,再用不同哈希函数产生不同的值)
  4. 公共溢出区:一旦哈希函数计算的结构相同就放入公共溢出区

1.3 基础

main函数的返回值

  • main函数的返回值是返回给主调进程,让主调进程得知被调用程序的运行结果。
  • 标准规范中main函数返回int类型,返回0无错误。
  • 检查不严格编译器返回类型也可以是void(如vs),检查严格必须是int(如g++)

main函数执行前后

  1. 执行前

    • 设置栈指针
    • 初始化 .date段内容(静态static变量和 赋值全局变量)
    • 初始化 .bss段内容(未初始化全局变量 赋0)
    • 全局对象初始化,调用全局对象的构造函数
    • 将参数argc、argv 传递给main函数,运行main函数。argc 类型为int型 ,argv类型为字符串数组
  2. 执行后

    • atexit() 函数,在main函数结束后调用
    • atexit() 函数注册的顺序和调用的顺序相反

“\n” 和 endl 的区别

  • “\n” 输出换行
  • endl 输出换行还会刷新缓冲区 , endl = “\n” + flush()
  • 没有必要刷新输出流的时候应尽量使用 “\n”

命名空间std

名称空间:将库函数封装起来的方法。可以避免和应用程序发生命名冲突的问题。

  • 使用 cin,cout 这两个 iostream 对象,要包含 头文件,还得让命名空间 std 内的名称曝光,即 using namespace std;
  • 开发过程中,避免使用直接引入整个命名空间,否则会因为命名空间污染导致很多不必要的问题(自己写的函数名称相同)。建议使用由命名空间组合起来的全称:std::cout

初始化和赋值

  • 初始化:创建变量时赋予其一个初始值
  • 赋值:把对象的当前值擦除,再用一个新值来替代。

局部变量和全局变量

  • 局部变量:也称为内部变量,它是在函数内定义的,作用域仅限于函数内
  • 全局变量:也称为外部变量,它是在函数外部定义的变量。其作用域是整个程序。在函数内部,局部变量可以屏蔽全局变量。
  • 如果一个全局变量用 static 修饰,它就是静态全局变量,它的作用域是该文件范围(称为文件作用域,即其它文件不能使用它)

操作系统和编译器是怎么知道变量是全局还是局部?

  • 操作系统和编译器,可能是通过内存分配的位置来知道的
  • 全局变量分配在全局数据段
  • 局部变量则分配在栈里面

变量的静态存储和动态存储

变量的生存周期只与变量的存储位置(存储类别)有关

  • 静态存储(在程序运行期间,系统对变量分配固定的存储空间)
  • 动态存储(在程序运行期间,系统对变量动态(不固定)的分配存储空间)
  • auto 自动变量(动态存储方式)
    static 静态变量(静态存储方式)
    register 寄存器变量(动态存储方式)
    extern 外部变量(静态存储方式)

函数返回引用

  • 可以节省构造函数创建临时副本
  • 可以节省析构函数删除临时副本的时间
  • 但是不能返回临时对象的引用

this指针

  • 一个类的成员函数只有一份,为了分开不同对象的数据,执行类成员函数时,会把当前的this指针(对象的首地址)传入成员函数。函数体内的数据成员都会转化为this->数据成员的方式。
  • 非静态成员函数(包括构造函数和析构函数)有自己的this指针,指向当前调用的对象。
  • 静态成员函数和友元函数没有this指针

为什么静态成员函数不用this指针?

  • 静态成员函数属于整个类,所有对象共有,独立于对象之外的。
  • this指针是类的实例指针,操作对象实例内容的,所以静态不用this指针
    在这里插入图片描述

相关文章:

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(一)

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(一) 你好&#xff0c;我是拉依达。 感谢所有阅读关注我的同学支持&#xff0c;目前博客累计阅读 27w&#xff0c;关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析&#xff08;持续更新&#xff09;-CSDN博客》已经是 Lin…...

使用matlab对矩阵进行分块

1. 前言 由于matlab内存限制&#xff0c;导致无法处理较大尺寸的矩阵&#xff1b; 2. 解决思路 读取原始大尺寸矩阵&#xff0c;分块后处理&#xff0c;及时删除中间过程文件&#xff0c;只保留分块处理后的最终结果&#xff0c;最后合并结果文件&#xff0c;减少内存占用。 …...

MongoDB(上)

MongoDB 基础 MongoDB 是什么&#xff1f; MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统&#xff0c;由 C 编写的。MongoDB 提供了 面向文档 的存储方式&#xff0c;操作起来比较简单和容易&#xff0c;支持“无模式”的数据建模&#xff0c;可以存储比较复杂…...

超详细的pycharm+anaconda搭建python虚拟环境

&#xff08;一&#xff09;pycharm安装 1. 下载 &#xff08;1&#xff09;从官网下载 &#xff0c;一般来说选择社区版就够用了。我这里选择2024.1.6的windows版本Other Versions - PyCharmGet past releases and previous versions of PyCharm.https://www.jetbrains.com/…...

yarn修改缓存位置

查看缓存位置 以下三个命令分别为&#xff1a;bin是yarn存储命令的二进制文件&#xff0c;global存储全局node_modules &#xff0c;cache存储用下下载缓存&#xff0c;查看本机目前的目录&#xff1a; 查看bin目录命令&#xff1a;yarn global bin 查看global目录命令&…...

单元测试知识总结

我们希望每段代码都是自测试的&#xff0c;每次改动之后&#xff0c;都能自动发现对现有功能的影响。 1 测试要求 在对软件单元进行动态测试之前&#xff0c;应对软件单元的源代码进行静态测试&#xff1b; 应建立测试软件单元的环境&#xff0c;如数据准备、桩模块、模拟器…...

光谱相机

光谱相机是一种能够同时获取目标物体的空间图像信息和光谱信息的成像设备。 1、工作原理 光谱相机通过光学系统将目标物体的光聚焦到探测器上&#xff0c;在探测器前设置分光元件&#xff0c;如光栅、棱镜或滤光片等&#xff0c;将光按不同波长分解成多个光谱通道&#xff0c…...

账号下的用户列表表格分析

好的&#xff0c;这是您提供的 el-table 组件中所有列的字段信息&#xff0c;以表格形式展示&#xff1a; 列标题 (label)字段属性 (prop)对齐方式 (align)宽度 (width)是否可排序 (sortable)说明IDidcenter100否管理员的唯一标识符头像avatarcenter90否管理员的头像 URL 或路…...

软件开发中 Bug 为什么不能彻底消除

在软件开发中&#xff0c;Bug无法彻底消除的原因主要包括&#xff1a;软件复杂度高、人员认知与沟通受限、需求和环境不断变化、工具与测试覆盖不足、经济与时间成本制约。其中“需求和环境不断变化”尤为关键&#xff0c;因为在实际开发中&#xff0c;业务逻辑随着市场与用户反…...

Flutter 中的 Flexible 与 Expanded 的介绍、区别与使用

在 Flutter 中&#xff0c;布局是构建用户界面的重要部分。Flexible 和 Expanded 是两个常用的布局小部件&#xff0c;它们都用于控制子小部件在父容器中的空间分配。虽然它们有相似之处&#xff0c;但在使用上有一些关键的区别。本文将介绍这两个小部件的基本概念、区别、参数…...

从零开始学习 sg200x 多核开发之 sophpi 编译生成 fip.bin 流程梳理

本文主要介绍 sophpi 编译生成 fip.bin 流程。 1、编译前准备 sophpi 的基本编译流程如下&#xff1a; $ source build/cvisetup.sh $ defconfig sg2002_wevb_riscv64_sd $ clean_all $ build_all $ pack_burn_image注&#xff1a; 需要在 bash 下运行clean_all 非必要可以不…...

通过一个例子学习回溯算法:从方法论到实际应用

回溯算法&#xff1a;从方法论到实际应用 回溯算法&#xff08;Backtracking&#xff09;是一种通过穷举法寻找问题所有解的算法&#xff0c;它的核心思想是逐步构建解空间树&#xff0c;在每个步骤中判断当前解是否合法。如果不合法&#xff0c;就“回溯”到上一步&#xff0…...

google 的guava 学习 基本工具类

Guava 是 Google 开发的一个 Java 核心库&#xff0c;它提供了一系列工具类&#xff0c;用于简化 Java 编程中的常见任务。以下是 Preconditions 和 Verify 两个工具类的使用示例&#xff1a; Preconditions 类 Preconditions 类提供了一组静态方法&#xff0c;用于在代码中插…...

【Linux金典面试题(上)】41道Linux金典面试问题+详细解答,包含基本操作、系统维护、网络配置、脚本编程等问题。

大家好&#xff0c;我是摇光~&#xff0c;用大白话讲解所有你难懂的知识点 之前写了一篇关于 python 的面试题&#xff0c;感觉大家都很需要&#xff0c;所以打算出一个面试专栏。 【数据分析岗】Python金典面试题 这个专栏主要针对面试大数据岗位、数据分析岗位、数据运维等…...

SpringBoot【九】mybatis-plus之自定义sql零基础教学!

一、前言&#x1f525; 环境说明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE mybatis-plus的基本使用&#xff0c;前两期基本讲的差不多&#xff0c;够日常使用&#xff0c;但是有的小伙伴可能就会抱怨了&#xff0c;若是遇到业务逻辑比较复杂的sq…...

CTF 攻防世界 Web: FlatScience write-up

题目名称-FlatScience 网址 index 目录中没有发现提示信息&#xff0c;链接会跳转到论文。 目前没有发现有用信息&#xff0c;尝试目录扫描。 目录扫描 注意到存在 robots.txt 和 login.php。 访问 robots.txt 这里表明还存在 admin.php admin.php 分析 在这里尝试一些 sql…...

【记录49】vue2 vue-office在线预览 docx、pdf、excel文档

vue2 在线预览 docx、pdf、excel文档 docx npm install vue-office/docx vue-demi0.14.6 指定版本 npm install vue-office/docx vue-demi <template><VueOfficeDocx :src"pdf" style"height: 100vh;" rendere"rendereHandler" error&…...

机器学习中的 Transformer 简介(第 1 部分)

目录 一、说明 二、为什么是 Transformer&#xff1f; 三、什么是 Transformer&#xff1f; 3.1 译者的类比 四、编码器部分 4.1 、从文本输入到输入嵌入 4.2 词嵌入 4.2 N倍编码器段 4.4 多头注意力机制 4.5 添加残差和层归一化 4.6 添加残差和层归一化 五、总结 一、说明 西如…...

宝塔-docker拉取宝塔镜像,并运行宝塔镜像

宝塔-拉取宝塔镜像&#xff0c;并运行镜像 第1步&#xff1a;查询 docker search btpanel/baota此docker镜像由堡塔安全官方发布&#xff0c;镜像版本为宝塔面板9.2.0正式版和9.0.0_lts 稳定版&#xff0c;镜像会随着宝塔面板更新。 目前支持x86_64和arm架构可供下载使用 版本…...

【从零开始入门unity游戏开发之——C#篇12】新的引用类型——数组array

文章目录 一、数组&#xff08;array&#xff09;&#xff08;一维数组&#xff09;1、声明数组2、初始化数组3、访问数组元素4 、修改数组元素5、获取数组的长度6、遍历数组使用 for 循环&#xff1a;使用 foreach 循环&#xff1a; 7、数组方法排序&#xff1a;逆序&#xff…...

人工智能在数字人的技术与应用

在人工智能领域&#xff0c;数字人技术正逐渐从科幻小说走向现实。数字人&#xff0c;也称为虚拟助手或虚拟形象&#xff0c;是通过AI技术模拟人类行为、语言和情感的数字化存在。本文将深入探讨数字人技术的核心原理、最新进展以及在不同领域的应用案例&#xff0c;为专业人士…...

【机器人】Graspness 端到端 抓取点估计 | 论文解读

在复杂场景中实现抓取检测&#xff0c;Graspness是一种端到端的方法&#xff1b; 输入点云数据&#xff0c;输出抓取角度、抓取深度、夹具宽度等信息。 开源地址&#xff1a;GitHub - rhett-chen/graspness_implementation: My implementation of Graspnet Graspness. 论文地…...

服务器Docker OOM RSS高问题排查思路

优质博文&#xff1a;IT-BLOG-CN 防走弯路为防止走弯路&#xff0c;强烈建议先仔细阅读以下加粗内容&#xff1a; 如果你的应用是因为公司最近降成本调小实例物理内存才出现docker oom&#xff0c;而之前从来没有出现过&#xff0c;那么大概率是堆内存太大导致&#xff0c;这种…...

动态导出word文件支持转pdf

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、功能说明二、使用步骤1.controller2.工具类 DocumentUtil 导出样式 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff…...

【文档搜索引擎】在内存中构造出索引结构(下)

文章目录 4.保存到磁盘中为什么要保存在磁盘中怎么保存操作步骤1. 前期准备2. 主要操作 5. 将磁盘中的数据加载到内存中Parser 类完整源码Index 类完整源码 4.保存到磁盘中 为什么要保存在磁盘中 索引本来是存储在内存中的&#xff0c;为什么要将其保存在硬盘中&#xff1f; …...

旅游资源系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...

如何用细节提升用户体验?

前端给用户反馈是提升用户体验的重要部分&#xff0c;根据场景选择不同的方式可以有效地提升产品的易用性和用户满意度。以下是常见的方法&#xff1a; 1. 视觉反馈 用户执行了某些操作后&#xff0c;需要即时确认操作结果。例如&#xff1a;按钮点击、数据提交、页面加载等。…...

容器设计模式:Sidecar

文章目录 容器设计模式&#xff1a;Sidecar 模式1. 什么是 Sidecar 模式&#xff1f;2. Sidecar 模式的原理2.1 工作机制2.2 常见用途 3. Sidecar 模式示例示例&#xff1a;日志收集 4. Sidecar 模式的架构图图例&#xff1a; 5. Sidecar 模式的优点6. Sidecar 模式的局限性7. …...

深入剖析MyBatis的架构原理

架构设计 简要画出 MyBatis 的架构图 >> ​​ Mybatis 的功能架构分为哪三层&#xff1f; API 接口层 提供给外部使用的接口 API&#xff0c;开发人员通过这些本地 API 来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis 和数据库的…...

深入C语言文件操作:从库函数到系统调用

引言 文件操作是编程中不可或缺的一部分&#xff0c;尤其在C语言中&#xff0c;文件操作不仅是处理数据的基本手段&#xff0c;也是连接程序与外部世界的重要桥梁。C语言提供了丰富的库函数来处理文件&#xff0c;如 fopen、fclose、fread、fwrite 等。然而&#xff0c;这些库…...

【Linux】shell脚本二

2、接收用户的参数 shell脚本已经内设了用于接收用户输入参数的变量&#xff0c;变量之间可以使用空格隔开。 如&#xff1a;./test.sh one two three four $0&#xff1a;对应的是当前shell脚本程序的名称&#xff0c;即test.sh$#&#xff1a;对应的是总共有几个参数&#…...

从万维网到人工智能:改变生活的11项技术里程碑

1984 年 1 月 24 日&#xff0c;苹果公司推出了 Macintosh 128K&#xff0c;从此永远改变了个人电脑的面貌。 史蒂夫・乔布斯&#xff08;Steve Jobs&#xff09;这款小巧且用户友好的电脑向全世界引入了图形用户界面&#xff0c;标志着个人技术发展历程中的一个关键时刻。 从…...

Hyperledger Fabric 2.x 环境搭建

Hyperledger Fabric 是一个开源的企业级许可分布式账本技术&#xff08;Distributed Ledger Technology&#xff0c;DLT&#xff09;平台&#xff0c;专为在企业环境中使用而设计&#xff0c;与其他流行的分布式账本或区块链平台相比&#xff0c;它有一些主要的区别。 环境准备…...

【Maven】自定义Maven插件

场景&#xff1a; 1、自定义一个插件目标 timer&#xff0c;用于显示当前日期时间。 2、将 timer 绑定到 validate 阶段。 调研 1、maven-clean-plugin 下载 maven-clean-plugin 插件的源码&#xff0c;在本地使用 IDEA 打开 可以看到&#xff0c;maven-clean-plugin 插件是…...

修改vscode中emmet中jsx和tsx语法中className的扩展符号从单引号到双引号 - HTML代码补全 - 单引号双引号

效果图 实现步骤 文件 > 首选项 > 设置搜索“”在settings.json中修改&#xff0c;增加 "emmet.syntaxProfiles": {"html": {"attr_quotes": "single"},"jsx": {"attr_quotes": "double","…...

数据结构day3作业

一、完整功能【顺序表】的创建 【seqList.h】 #ifndef __SEQLIST_H__ #define __SEQLIST_H__#include <stdio.h> #include <string.h> #include <stdlib.h>//宏定义&#xff0c;线性表的最大容量 #define MAX 30//类型重定义&#xff0c;表示要存放数据的类…...

pydub AudioSegment实现音频重采样 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” -------------------------------------------------------------…...

C++多线程常用方法

在 C 中&#xff0c;线程相关功能主要通过头文件提供的类和函数来实现&#xff0c;以下是一些常用的线程接口方法和使用技巧&#xff1a; std::thread类 构造函数&#xff1a; 可以通过传入可调用对象&#xff08;如函数指针、函数对象、lambda 表达式等&#xff09;来创建一…...

【网络安全】Web Timing 和竞争条件攻击:揭开隐藏的攻击面

Web Timing 和竞争条件攻击&#xff1a;揭开隐藏的攻击面 在传统的 Web 应用中&#xff0c;漏洞的发现和利用通常相对容易理解。如果代码存在问题&#xff0c;我们可以通过发送特定输入来强制 Web 应用执行非预期的操作。这种情况下&#xff0c;输入和输出之间往往有直接关系&…...

12月最新编程语言排行榜

“岁末将至&#xff0c;2024年的编程世界又发生了哪些变化&#xff1f;是Python依然稳坐王座&#xff0c;还是有新语言杀出重围&#xff1f;让我们一起看看12月最新编程语言排行榜&#xff0c;寻找未来技术的风向标。” 今年&#xff0c;哪些编程语言成为行业焦点&#xff1f;…...

迭代器模式

迭代器模式 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为设计模式&#xff0c;它提供了一种方法来访问一个聚合对象中的各个元素&#xff0c;而又不暴露其内部的表示。这种模式允许你逐个访问对象中的元素&#xff0c;而无需知道其底层的数据结构。迭代器模…...

探秘 WB 实验:AI 助力攻克操作难关

在生物学研究的浩瀚领域中&#xff0c;WB 实验犹如一座关键的灯塔&#xff0c;照亮了我们探索蛋白质世界的道路。今天&#xff0c;就让我们一同深入了解 WB 实验的全貌&#xff0c;以及 AI 如何在其中发挥神奇作用&#xff0c;帮助我们应对实际操作中的重重挑战。 WB 实验&…...

labelimg使用指南

YOLOv8目标检测(一)_检测流程梳理&#xff1a;YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集&#xff1a;YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型&#xff1a;YOLOv8目标检测(三)_训…...

车载终端_智能车载终端定制_农机/出租车/叉车/驾培车载终端MTK方案

车载终端集成了先进的技术和卓越的性能&#xff0c;采用了联发科的高效低功耗ARM处理器&#xff0c;具备八核架构&#xff0c;主频高达2.0GHz&#xff0c;基于12nm制程工艺&#xff0c;不仅性能强劲&#xff0c;而且功耗控制出色。基本配置为4GB内存与64GB存储&#xff0c;用户…...

Unity中Pico实现透视

1.参照Pico官方【透视 | PICO 开发者平台】文档设置。 2.额外的需要将主相机的post processing禁用。...

elk部署与实战案例

**ELK Stack** 是一个非常强大的日志处理和分析平台&#xff0c;由 **Elasticsearch**、**Logstash** 和 **Kibana** 三个组件组成。它被广泛应用于日志收集、搜索、分析和可视化。ELK 可以处理大量数据&#xff0c;并帮助用户从中提取有价值的信息。以下是一个从部署到实际应用…...

Isaac Gym, Sim, Lab

本文仅为个人学习笔记&#xff0c;文章参考请见参考资料部分&#xff0c;主要目的是进行多场景并行仿真测试&#xff0c;笔记中大部分内容都是针对于这个目标。 参考资料 常见问题 — Isaac Lab 文档 https://github.com/isaac-sim/IsaacLab 一. Gym, Sim, Lab 之间的关系 Is…...

活着就好20241217

亲爱的朋友们&#xff0c;大家早上好&#xff01;&#x1f31e; 今天是17号&#xff0c;星期二&#xff0c;2024年12月的第十七天&#xff0c;同时也是第50周的第八天&#xff0c;农历甲辰[龙]年十一月初十三日。在这晨光熹微的美好时刻&#xff0c;愿那温暖而明媚的阳光轻轻拂…...

第十六章:IO流 (java.io包中)

一、理解 1. 简单而言&#xff1a;流就是内存与存储设备之间传输数据的通道、管道。 2. 分类&#xff1a; (1) 按方向 ( 以 JVM 虚拟机为参照物 ) 【重点】 输入流&#xff1a;将 < 存储设备 > 中的内容读入到 < 内存 > 中。 输出流&#xff1a;将 < 内…...

Introduction to NoSQL Systems

What is NoSQL NoSQL database are no-tabular非數據表格 database that store data differently than relational tables 其數據的存儲方式與關係型表格不同 Database that provide a mechanism機制 for data storage retrieval 檢索 that is modelled in means other than …...