- 博客(12)
- 收藏
- 关注
原创 c++之多态详解
但是加上virtual之后,就相当于类内部多了一个指针vfptr(虚函数(表)指针),这个指针指向了vftable(虚函数表),而vftable里存储了虚函数表,表内部记录了虚函数的地址,所以这时候用sizeof可看到Animal类的大小变为了4,多了一个指针的大小,这个指针指向虚函数的地址,也就是&Aniaml.speak函数的地址,加取址符。这时候我们会看到,Cat类内的指针指向的虚函数表中记录的地址发生了变化,它记录的是Cat类作用域下的speak函数了。(类外)类名::~类名(){};
2023-09-25 16:24:02
156
1
原创 学习回顾:IIC
IIC总线是由Philips公司开发的一种通用数据总线,它是由两根通讯线(SCL时钟线和SDA数据线)组成,同步、半双工协议,并不是USART全双工,并且带数据应答,支持总线挂载多个设备(一主多从、多主多从)。
2023-09-04 20:11:51
175
1
原创 复习C语言中内存开辟的知识
realloc并不是在malloc空间内存的延续,而是新开辟的一段内存空间,然后将之间的40字节的空间大小释放掉,所以我们不用担心原空间后是否有足够的内存空间来延续,只需要判断是否新开辟成功即可。我是这样理解的,堆就是由程序员自己决定是否开辟和释放,栈的生命周期一结束就会被释放而堆内存会被垃圾回收机制不定时回收,栈一般都是存放一些临时的局部变量,在函数执行完毕后就会立即释放。我们先是开辟了一段40字节的内存空间,然后使用realloc去申请了更大的80字节空间的大小,这就是realloc的用法。
2023-08-27 14:24:40
208
1
原创 学习笔记二:树莓派与STM32的UART通信+绘图
要进行UART通信,需要配置STM32的USART通信端口,我们利用库函数来操作会方便很多。我这里使用的是STM32F103C8T6这块芯片,查看数据手册可得其中GPIOA9和GPIOA10这两个引脚分别为TXD和RXD端口,都挂载在APB2外设上,所以直接对库函数操作如上图所示:1.开启USART1和GPIOA的时钟;2.分别创建GPIO和USART的结构体来初始化各项库函数,引脚选择GPIOA9和GPIOA10,也可以选择其他端口,但是得相应的开启其他端口的时钟。3.使能USART。在PC端串口助手经测
2022-12-06 13:33:38
2151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人