- 博客(6)
- 收藏
- 关注
原创 c++多态:虚函数表,RTTI,typeid,dynamic_cast
这样的代码的时候,会有一个隐藏的指针生成,指向等号左边的类型的虚函数表,就是cat类的虚函数表。上面说了,在运用多态的时候会写如下的类似代码,就是用基类的指针指向其派生类。这其中的原因我认为没有为什么,就是编译器不支持,语法上的问题,因为即使对象a指向cat类型的内存,但是它定义的是animal类型的指针。可以看到有两种转换方式,一种是c语言的风格,强制转换,但是这样做不安全,即使不同的类型也可以转换造成异常不报错,所以。类型的常量(记录了这个类的一些信息),其他指针记录了 这个类的虚函数的入口地址。
2023-09-24 11:49:59
91
1
原创 zynq双核AMP实验之cpu1唤醒代码
一·多核CPU的运行模式 从软件的角度看,多核处理器的运行模式有 AMP(非对称多处理)、SMP(对称多处理)和 BMP(受约束多处理)三种运行模式。 AMP 运行模式指多个内核相对独立的运行不同的任务,每个内核相互隔离,可以运行不同的操作系统(OS)或裸机应用程序。 SMP 运行模式指多个处理器运行一个操作系统,这个操作系统同等的管理多个内核,如 PC 电脑。 BMP 运行模式与 SMP 类似,但开发者可以指定将某个任务仅在某个指定内核上执行。 二.唤醒CPU1
2020-07-07 23:24:57
1641
原创 zynq中断之gpio中断,emio按键中断详解(解决重复中断)
一.概要 zynq有三种中断:软中断(software interrtpts),私有外设中断(private peripheral)和共享外设中断(shared perlpherals)。区别在于私有外设中断和共享外设中断含有PL测引入的中断。*每个中断都有自己ID号。*有一个中断控制器(generic interrupt controller)管理着这些中断的使能,分类,分配和优先级。框图如下图所示:①软中断:②私有外设中断:  
2020-06-14 23:08:24
4829
2
原创 转载:void(*fun)()与void*fun()的区别
void * fun( ) ; //声明一个返回值是任意类型的指针 的函数fun()void vfun( ) ; //声明一个没有返回值 的函数vfun()void (*)( ) 这是一种变量类型,可用来定义函数指针变量,如:void (*pfun)( ) ; //声明一个函数指针变量pfun,该类型函数就是void vfun( ) 这种类型,pfun可以指向这类函数,如:pfun=vfun ;参考代码:#include <stdio.h>void foo( void
2020-06-11 17:37:39
5191
原创 C语言之#define,#ifdef,typedef,extern,statis,__weak的用法,看懂stm32中的.h和.c文件
1. #definec语言中的预处理命令,用于宏定义。示例:#define number 0xff(不用加分号)这里就是用number代替了0xff。2. #ifdef条件编译,满足条件时对下面的程序进行编译,否则不编译。格式:#ifdef 标识符 程序1(如果标识符是有定义的就编译程序1) &
2020-05-30 19:07:25
1332
1
原创 关于字节对齐,自己的理解
大家知道,字节对齐就是指内存地址可以被它的长度整除。至于为什么要对齐,百度了很多,都说是效率问题,确实是效率问题,但都没有说为什么对齐了效率就会快很多。所以我就谈谈自己的想法。大家都知道,内存就像是很多小方格组成的矩阵,在硬件上,读取内存中其中一个存储单元,需要输入行地址和列地址。如下图所示!图片为百度下载转载但是我们用c语言中的地址就是一串16进制的数字ox---------.。那怎么和上面...
2020-05-06 00:28:33
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人