C/C++知识
学习嵌入式道路上C/C++的小知识记载专栏
威威攻城狮
远赴人间惊鸿宴,一睹人间盛世颜!
展开
-
环形数据缓冲区的实现 --C语言版本
本篇文章主要给出实现一个环形数据缓冲区的源码!原创 2021-01-23 18:00:24 · 988 阅读 · 4 评论 -
C++面试知识点
C++多态及其实现原理C ++内存管理原创 2020-11-30 19:44:47 · 131 阅读 · 0 评论 -
C++ 面向对象的三大特性和五个原则
面向对象的三大特性:封装、继承、多态封装就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。继承指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类转载 2020-11-30 19:37:38 · 239 阅读 · 0 评论 -
C/C++之extern“C“
extern"C"包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标的是“C”的。让我们来详细解读这两重含义。被extern"C"限定的函数或变量是extern类型的:extern 是 C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列语句:extern int a;仅仅是一个变量的声明,其并不是在定义变量 a,并未为 a 分配内存空间。变量 a 在所有模块中作原创 2020-10-23 15:59:38 · 222 阅读 · 0 评论 -
C/C++ new/malloc 指针与引用的区别
1 、new和malloc的区别new、delete是C++中独有的操作符,而malloc和free是C/C++的标准库函数使用new创建对象在分配内存的时候会自动调用构造函数,同时也可以完成对对象的初始化,同理要记得delete也能自动调用析构函数。因为malloc和free是库函数而不是运算符,不在编译器控制范围之内,所以不能够自动调用构造函数和析构函数,也就是malloc只是单纯地为变量分配内存,free也只是释放变量的内存。new返回的是指定类型的指针,并且可以自动计算所申请内存的大小,而m原创 2020-10-23 11:19:54 · 387 阅读 · 0 评论 -
C语言面试代码题
用一个宏函数实现交换两个数#define SWAP(x,y) (x)=(x)+(y);(y)=(x)-(y);(x)=(x)-(y);用一个宏函数实现输出两个数的最大值#define MAX(x,y) ((x)>(y)?(x):(y))用一个宏函数实现输出两个数的最小值#define MIN(x,y) ((x)>(y)?(y):(x))用一个宏函数实现求数组元素个数#define NTBL(array) (sizeof(array)/sizeof(array[0]))宏原创 2020-09-27 10:21:14 · 406 阅读 · 0 评论 -
C/C++之struct的小知识
1、struct的成员对齐1.1 自然对界struct 是一种复合数据类型,其构成元素既可以是基本数据类型(如 int、long、float 等)的变量,也可以是一些复合数据类型(如 array、struct、union 等)的数据单元。对于结构体,编译器会自动进行成员变量的对齐,以提高运算效率。缺省情况下,编译器为结构体的每个成员按其自然对界(natural alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同自然对界(natural原创 2020-07-13 11:26:39 · 259 阅读 · 0 评论