C
古道异禀
他山之石可以攻玉
展开
-
C语言 函数后面加const作用
void function() const{}通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢?看一下下面的例子,就知道了。直接在编译前,就会提示下面的两个错误// test1107.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class a{ int num;public: a(){ in转载 2020-12-30 10:26:22 · 1294 阅读 · 0 评论 -
C语言 ‘\0‘的含义
'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'。如果字符串末尾少了'\0'转义字符,则其在输出时可能会出现乱码问题。'\0'转义字符在ASCII表中并不表示阿拉伯数字0,阿拉伯数字0的ASCII码为48,'\0'转义字符的ASCII码值为0,它表示的是ASCII控制字符中空字符的含义。'\0'是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间,而一个汉字一原创 2020-12-04 10:00:32 · 17165 阅读 · 0 评论 -
C语言 结构体四种初始化方法
定义struct InitMember{ int first; double second; char* third; float four;};方法一:定义时赋值struct InitMember test = {-10,3.141590,"method one",0.25};需要注意对应的顺序,不能错位。方法二:定义后逐个赋值struct InitMember test;test.first = -10;test.sec..转载 2020-12-04 09:42:44 · 890 阅读 · 0 评论 -
C++ STL容器
STL(标准模板库),是目前C++内置支持的library。它的底层利用了C++类模板和函数模板的机制,由三大部分组成:容器、算法和迭代器。目前STL有六大组件容器 container 算法 algorthm 迭代器 iterator 仿函数 function object 适配器 adaptor 空间配置器 allocator下面,我们会一一进行介绍。STL初探容器是STL中很重要的一种数据结构。常见的容器包括vector容器 deque双端数组 stack栈模型 q转载 2020-09-27 09:40:54 · 242 阅读 · 0 评论 -
HIDL实例编写
想了解HIDL介绍的可以参考《HIDL概述》,本篇文章主要介绍HIDL的详细编译流程及简单的客户端应用(C++跟Android客户端的应用)一、准备工作1、整一套源码,Android O或者Android P的2、保证全套代码已经全编译,原生代码全编译命令source build/envset.sh lunch make3、hidl-gen工具已经安装,安装命令make hidl-gen二、hidl-gen工具介绍系统定义的所有的.hal接口,都是通过hidl-gen工具转.转载 2020-09-02 15:59:06 · 2789 阅读 · 4 评论 -
C++ 三种创建对象方式
#include <iostream>using namespace std;class A{private: int n;public: A(int m):n(m) { } ~A(){}};int main(){ A a(1); //栈中分配 A b = A(1); //栈中分配 A* c = new A(1); //堆中分配 delete c; return 0;}第一种和第二种没什么区别,.转载 2020-09-01 14:28:59 · 404 阅读 · 0 评论 -
Android C++的sp指针简介
智能指针是C++ 中的一个概念,因为C++ 本身不具备垃圾回收机制,而且指针也不具备构造函数和析构函数,所以为了实现内存( 动态存储区) 的安全回收,必须对指针进行一层封装,而这个封装就是智能指针C++的智能指针有很多实现方式,有auto_ptr , unique_ptr , shared_ptr 三种,还有其他的android 中的sp 句柄类实际上就是google 实现的一种强引用的智能指针Android 中封装了sp<> 强指针,wp<>弱指针的操作:强指针与.转载 2020-08-31 15:45:32 · 721 阅读 · 0 评论 -
UART通讯协议详解(STM32F103)
https://baijiahao.baidu.com/s?id=1665274898041730396&wfr=spider&for=pchttp://www.elecfans.com/emb/jiekou/20171206595886_a.html转载 2020-08-31 14:02:34 · 510 阅读 · 0 评论 -
C语言 * 与 &
int a = 10; int *b = &a;printf(“%d\n”, a); printf(“%d\n”, &a); printf(“%d\n”, b); printf(“%d\n”, *b);结果:106487620648762010为什么&a和*b的值不是一样?变量a 本质上代表一个存储单元。CPU通过该存储单元的地址访问该存储单元中的数据。所以a本来代表两个值:存储单元的地址和储单元中的数据。于是就有了二异性。为了消除...转载 2020-06-11 17:19:02 · 2760 阅读 · 0 评论 -
u32、u16、u8 数据类型
#define U32 unsigned int #define U16 unsigned short #define S32 int #define S16 short int #define U8 unsigned char #define S8 charunsigned char = u8 unsigned short int = u16 unsigned long ...转载 2020-03-23 08:06:53 · 2445 阅读 · 0 评论 -
C/C++虚函数实现的基本原理
1. 概述简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。例:其中:B的虚函数表中存放着B::foo和B::bar两个函数指针。 D的虚函数表中存放的既有继承自B的虚函数B::foo,又有重写(override)了基类虚函数B::bar的D::bar,还有新增的虚函数D::quz。提示:为了描...转载 2020-03-09 08:26:43 · 625 阅读 · 0 评论 -
C#中的虚函数virtual
简单介绍虚函数virtual在某基类中声明 virtual 并在一个或多个派生类中被重新定义的成员函数称为虚函数。虚函数的作用就是实现多态性(Polymorphism),多态性是将接口与实现进行分离。C#作为完全面向对象语言,所有函数并不默认为virtual,但可以在基类中声明关键字virtual,就可以在其派生类中通过关键字override重写该函数。重写后的virtual函数依旧是...转载 2020-03-09 08:16:46 · 1139 阅读 · 2 评论