- 博客(27)
- 收藏
- 关注
原创 嵌入式学习!(一)C++学习(18)入门-12/25
父类中所有非静态成员属性都会被继承下去,父类中私有成员属性 是被编译器给隐藏了,因此是访问不到,但是确实被继承下去了。通过类名方式访问: son:: m_A son::base::m_A。当子类与父类拥有同名的成员函数,子类会隐藏父类中同名成员函数,加作用域可以访问到父类中同名函数。this本质是指针常量,指针的指向是不可以修改的 相当于 person * const this;语法:class 子类 : 继承方式 父类1, 继承方式 父类2......成员函数的 括号 后面;
2025-12-25 22:44:47
91
原创 嵌入式学习!(一)C++学习(17)入门-12/22
1、如果定义有参构造函数,C++不提供默认无参构造,但提供默认拷贝构造。4.程序在调用函数时会自动调用构造,无需手动调用,而且只会调用一次。4.程序在调用函数时会自动调用构造,无需手动调用,而且只会调用一次。语法:创建:class 类名{ 访问权限: 属性 / 行为};3、默认拷贝构造,对属性值拷贝;唯一区别:默认的访问权限不同 struct 默认公共;语法:构造函数( ) : 属性1(值1),属性2(值2).... { }编译器强制要做的,若我们不提供,编译器会提供,其提供的是空实现。
2025-12-22 23:38:38
356
原创 嵌入式学习!(一)C++学习(16)入门-12/17
/ new 返回的值是个地址,堆区中 值为10 的 地址。堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete。tips2:常量:字符串常量 "world";注意事项:不要返回局部变量的地址,栈区开辟的数据有编译器自动释放。堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。@ 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。@ 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。
2025-12-17 22:53:40
181
原创 嵌入式学习!(一)C++学习(15)入门-12/15
6. 头文件引用形式与C有点区别,比如using namespace std 的使用。char 名字[] = " xxx " c语言。string 名字 = " xxx " c++5.2选择结构 :if语句、<string> 头文件。编译使用 g++ 而不是gcc。
2025-12-16 22:58:33
187
原创 Vscode终端中文乱码
2. 代码写完后才发现,也是直接将UTF-8 改为 GBK 的编码格式,此时程序中的中文会变成乱码,在使用 CTRL+ Z 来进行一次回撤,即可。(也许有问题,小项目用)打开Vscode或创建文件时,默认的编码是 UTF-8 ,若直接进行打字,之后编译运行,终端中文是乱码。1. 在开始时,直接将UTF-8 改为 GBK 的编码格式;
2025-12-16 21:39:51
113
原创 嵌入式学习!(一)Linux命令学习(14)入门-12/10
lib: /usr/lib: /usr/local/lib: 系统使用的函数库目录;/bin: /usr/bin: 可执行二进制文件;路径:Unix/linux " / ";一步压缩 tar czvf xxx.tar.gz xxx1 xxx2 xxx3 xxx4。一步压缩 tar -cjvf xxx.tar.bz2 xxx1 xxx2 xxx3 xxx4。/sbin: /usr/sbin: /usr/local/sbin: 系统管理员使用的可执行命令;/mnt: /media: 光盘默认挂载点;
2025-12-15 21:17:15
382
原创 嵌入式学习!(一)C语言学习(13)入门-12/09
2. 设置光标位置:SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);<conio.h> 这个头文件当中。<conio.h> 这个头文件中。1. 随机数种子: srand((size_t)time(NULL));6. 检查当前键盘是否有输入,若有则返回一个非0值,否则返回0值 kbhit() 用法: int _kbhit(void);5. 从控制台无回显地取一个字符 getch() 用法: int。返回值:读取的字符;
2025-12-09 23:36:27
165
原创 嵌入式学习!(一)C语言学习(12)入门-12/04
不可以修改指针变量的值 p = &b;add( int arr[],int len) 可替换为 add( int* arr, int len)不可以修改指针指向内存空间的值 *p = 100;不可以修改指针指向内存空间的值 *p = 100;可以修改指针指向内存空间的值 *p = 100;//操作野指针对应的内存空间可能报错(这个地址的空间, 让不让访问, 类型是否一样,里面有啥)// 2. ch指针后移 |
2025-12-05 00:13:59
300
原创 嵌入式学习!(一)C语言学习(9)入门-12/02
void *realloc() 修改已分配空间的大小。long int strtol() 字符串转长整型。char *strncpy() 指定最大长度复制。void *malloc() 动态分配内存空间。void free() 释放动态分配的空间。void srand() 初始化随机种子。char *strcpy() 字符串复制。char *strcat() 字符串拼接。char *strrchr() 查找字符。void *memset() 设置内存值。void *memcpy() 内存复制。
2025-12-02 00:40:15
258
原创 嵌入式学习!(一)C语言学习(8)入门-11/29
2. 再用malloc函数为p指针分配动态空间,因为要对其进行写操作。4. 在定义临时变量last保存head地址,防止其丢失。3. 写入数据后,由p指向的结构体保存。1.制造出链表的元素。
2025-11-29 00:20:48
106
原创 嵌入式学习!(一)C语言学习(7)入门-11/24
head 这就是一个结点。【 数据 | 指向一下个的指针】→ 【数据 |指向一下个的指针】→。→ 【数据 | 结尾】5.优化:链表 (14.2.2反复!3.可变数组的自动增长。4.缺陷:导致空间不足。
2025-11-24 23:52:30
210
原创 嵌入式学习!(一)C语言学习(6)入门-11/19
malloc()函数的使用,借了一块void类型的空间,空间的大小以字节为单位,返回的是 void * ,需要自己转换成想要的类型 (int*)malloc(n*(sizeof(int)))字符数组 char word[] = {'H','E', 'L', 'L', 'O', '!//括号里的名字是常量符合,类型是int,值则依次从0到n。字符数组 char word[] = {'H','E', 'L', 'L', 'O', '!//空字符串,buffer[0]== ' \0 '
2025-11-20 00:15:43
396
原创 嵌入式学习!(一)C语言学习(5)入门-11/18
函数是一块代码,接收零个或多个参数,做一个事情,并返回零个或一个值y = f(x)定义:函数类型 函数名 ( 参数表 )函数体调用:函数名(参数值);()起到了表示函数调用的重要作用,即使没有参数也要带上();如果有参数,则需要给出正确的数量和顺序这些值会被按照顺序依次用来初始化函数中的参数<类型> 变量名称 [ 元素数量 ];‘元素数量必须是整数’容器: 其中所以元素具有相同的数据类型;一旦创建,不能改变大小可出现在赋值号 左边和右边数组每个单元就是数组类型的一个变量。
2025-11-18 23:46:53
642
原创 嵌入式学习!(一)C语言学习(4)入门-11/17
b 回退一格 、 \t 到下一个表格位、 \n 换行、 \r 回车、 \" 双引号、 \' 单引号、\\ 反斜杠本身。float 32 ±(很大),0,±inf,nan 有效数字7 输入 %f 输出 %f,%e。double 64 ±(很大),0,± ,nan 有效数字15 输入 %lf 输出 %f,%e。同理,对于-a,其补码就是0-a,实际是2^n - a , n是这种类型的位数。lg:(int)10.2 注意安全性,小的变量不总能表达大的量。
2025-11-18 00:04:24
270
原创 嵌入式学习!(一)C语言学习(3)入门-11/13
方案1:13245 → 1 3 2 4 5: 原本的数13245→逆序54231→再逆序挨个输出在加空格 1 3 2 4 5。方法2:在计算位数cnt时的循环中,直接使用mask *= 10,同时要注意循环的轮数。注:其中 在输出时,设置了当x>= 10 两位数时才输出空格,这样能让最后5后面没有空格。其中mask = 10000 ,循环的次数应该按照位数的多少来进行。2. 否则,计算a除以b的余数,让a等于b,而b等于那个余数;方案2:利用先取最高位,再取余,在同步位数,依次循环。
2025-11-13 23:49:41
166
原创 嵌入式学习!(一)C语言学习(2)入门-11/12
rand() 是伪随机数,是根据一个数值按照某个公式推算出来的,这个数值我们称之为“种子”。在实际开发中,我们可以用时间作为参数,只要每次播种的时间不同,那么生成的种子就不同,最终的随机数也就不同。类似于计数器:先初始化,在计数器达到某个值之前,重复循环,而每循环一轮,计数器以一定步进 进行调整,比如加1 或 减1。while( 条件 ){ 循环体语句 } : 条件满足时,不断循环其中语句。对一个整数做 /10 的操作, 就去掉了他的个位数。注意:()中的每一个表达式都是可以省略的。
2025-11-12 23:55:59
209
原创 多传感器融合(四)--- ROVIO与EVO的安装与使用
ROVIO是一款基于滤波的单目SLAM依赖:ROS、kindr、lightweight_filtering(在rovio目录下操作)
2023-07-25 11:17:57
334
原创 多传感器融合(三)--- NaveGO工具箱
NaveGo:一个开源的MATLAB/GNU-Octave工具箱,用于处理集成导航系统并执行惯性传感器剖析分析。NaveGo 是一个开源的 MATLAB/GNU Octave 工具箱,用于处理集成导航系统、模拟惯性传感器和 GNSS 接收器。它还使用艾伦方差对惯性传感器进行分析。它可以在线免费获得。它是在MATLAB / GNU-Octave下开发的,因为这种编程语言已成为物理系统工程和建模的事实标准。NaveGo的座右铭是“为大众带来综合导航”。
2023-07-24 21:51:56
1562
原创 多传感器融合(二)--- 杆臂
杆臂就是各个传感器之间的相对位置关系,在多传感器融合的时候,每个传感器的位置计算都是相对于自己的,把他们统一做滤波的时候,需要有一个统一的坐标系,就是要补偿这个距离。以gps和ins组合为例,如果不补偿,位置观测就是有误差的,会把估计量带偏。
2023-07-20 17:21:31
1919
原创 多传感器融合(一)-- IMU/GPS/GNSS介绍
全球定位系统(GPS)是“授时、测距导航系统/全球定位系统(Navigation systerm Timing and Ranging/Global Positioning System)的简称。该系统是由美国国防部于1973年组织研制,主要为军事导航与定位服务的系统。历经20年,耗资300亿美元,于1993年建设成功。GPS是利用卫星发射的无线电信号进行导航定位,具有全球性、全天候、高精度、快速实时三维导航、定位、测速和授时功能,以及良好的保密性和抗干扰性。全球卫星导航系统 (GNSS)
2023-07-20 17:13:14
2825
原创 windows系统中在VScode中添加Eigen opencv sophus库
首先根据问题发现是缺少这个库,则取相对应的官网下载并解压在自己设置路径中,接着在程序相应的CMakeList.txt中增加。其中的路径为自己下载并解压的路径,保存之后重启VScode即可。
2023-03-10 15:06:39
491
原创 解决 CondaHTTPError 问题
创建虚拟环境时,提示CondaHTTPError 表示 连接太慢,通过清华大学开源软件镜像站教程完成即可
2023-03-02 18:44:07
589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2