自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (3)
  • 收藏
  • 关注

原创 Linux下c语言进程和线程简单概括

进程VS线程1、进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位)2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。3、线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多

2021-02-26 16:17:42 209

原创 常用的几种网络协议HTTP/HTTPS、socket、TCP/UDP 、 及其c基础编程

常用的几种网络协议HTTP/HTTPS、socket、TCP/UDP 、 及其c基础编程HTTP/HTTPS处于应用层socket处于会话层TCP/UDP处于传输层HTTP/HTTPS编程详细内容可以参考这篇博文,libcurl的http编程应用,这里只是做个简单的总结get编程 struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Accept: Agent-007");//创建一个张志

2021-02-24 12:15:35 502

原创 SourceInsight的使用——ide的使用

SourceInsight的使用——ide的使用(1)创建工程 project->New Project(2)一般的习惯是在项目代码的文件夹平级处创建一个pro文件夹用于存放sourceinsight的工程文件(3)进入这个界面之后设置字体 点击左上角options->Preferences 进入之后就能够设置字体大小和字体样式了(4)同步文件, 在文件选择框——及左侧的框中右键,选择synchronize files勾选全部文件强制同步...

2021-05-13 20:13:16 598

原创 SecureCRT的使用

SecureCRT的使用(1)创建会话(2)获取虚拟机ip地址ifconfig(3)将ip地址填入创建会话的ip地址框中(4)按照ubuntu用户的名称和密码进行连接(5)调节会话字体和颜色,右键选项-》会话选项(6)修改自己的上传下载目录(7)通过rz 和 sz 发送接收ubuntu的文件 安装 sudo apt install lrzsz通过SecureCRT发送文件给ubuntu——会发送到ubuntu的当前目录rz通过SecureCRT接收ubuntu的文件——

2021-05-13 20:07:30 273

原创 ubuntu的基础安装和使用

一、换源(1)到/etc/apt/下cd /etc/apt/(2)备份原来的源文件sudo cp sources.list sources.list.bak(3)替换源文件sudo gedit sources.list将里面的内容替换成源文件内的内容(4)更新源sudo apt-get update二、进入和退出超级用户状态(1)刚装好的ubuntu系统设置超级用户密码sudo passwd root(2)进入超级用户模式su -(3)退出超级用户模式exit或者

2021-05-13 20:01:53 326 2

原创 [const int *p & int const *p]与int *const p的区别

const指常量,是一个常量修饰符对于一、const int *p;二、int const *p;这两者的*p都作为一个整体在const右边,所以*p,也就是p指向的内容不可修改对于int *const p;const右边是p,p为一个地址,所以p的值,也就是p指针的指向不可被修改...

2021-04-10 00:04:55 95

转载 数据结构——青岛大学王卓 总结

https://blog.csdn.net/liu17234050/article/details/104237990

2021-04-09 21:39:10 2365

转载 王道考研——操作系统总结

https://blog.csdn.net/gl620321/article/details/107128661

2021-04-09 21:31:18 1224

转载 王道考研——计算机网络总结

https://blog.csdn.net/weixin_43914604/article/details/104722679

2021-04-09 21:19:58 1138

转载 常见查找算法

https://www.cnblogs.com/maybe2030/p/4715035.html#_label5

2021-04-08 22:45:32 56

转载 一篇总结操作系统知识点的结构图博文

https://blog.csdn.net/donkey010/article/details/115017173?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-1&spm=1001.2101.3001.4242

2021-04-08 22:28:43 75

原创 C++模板

模板有两大分类,函数模板和类模板其核心思想就是将数据类型看作一个变量,可以在函数调用或者类构建时自由修改变量的数据类型函数模板基础使用语法template<class T>void f(T a, T b){ a = b;}两种调用方法自动类型推导,必须推导出一致的数据类型T,才可以使用 f(a,b);模板必须要确定出T的数据类型,才可以使用 f<int>(a,b);与普通函数的区别普通函数调用时可以发生自动类型转换(隐式类型转换) v

2021-04-04 22:19:15 43

原创 C++类模板分文件编写

直接分文件编写的问题类模板中成员函数创建时机是在调用阶段,导致分文件编写时链接不到解决方法解决方式1:直接在需要用到的文件中包含.cpp源文件#include "person.cpp"解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制#pragma once#include <iostream>using namespace std;#include <string>template<class T1, c

2021-04-04 20:48:22 263

原创 C++类模板成员函数的类外实现

话不多说,直接上代码template<class T1, class T2>class Person {public: //成员函数类内声明 Person(T1 name, T2 age); void showPerson();public: T1 m_Name; T2 m_Age;};//构造函数 类外实现template<class T1, class T2>Person<T1, T2>::Person(T1 name, T2 age)

2021-04-04 20:43:46 172

原创 C++类模板与继承

类模板与继承类模板是能够灵活地与继承配合使用的例子基类结构template<class T>class Base{ T m;};当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型//class Son:public Base //错误,c++编译需要给子类分配内存,必须知道父类中T的类型才可以向下继承class Son :public Base<int> //必须指定一个类型{};//调用void test01(){

2021-04-04 20:37:04 223

转载 黑马程序员C++文档链接

基础 https://blog.csdn.net/ClaireSy/article/details/108422945核心 https://blog.csdn.net/ClaireSy/article/details/108423047提高 https://blog.csdn.net/ClaireSy/article/details/108423061

2021-04-03 16:45:41 389

原创 C++多态

多态函数名有多种形态表现多态可以分为两类 静态多态 动态多态静态多态函数重载运算符重载函数地址在编译阶段绑定的动态多态派生类和虚函数运行时的体现的多态函数地址在运行阶段绑定的class Animal{public: //Speak函数就是虚函数 //函数前面加上virtual关键字,变成虚函数,那么编译器在编译的时候就不能确定函数调用了。 virtual void speak()//这个是多态的关键 { cout << "动物在说话" &lt

2021-04-03 16:31:40 51

原创 C++继承

继承我们发现,上面的这些下级成员都有上级成员的共性,还添加了自己的个性这个时候就能利用继承的技术,减少重复的代码语法class 子类 : 权限 父类{ };class son:public father{ };class animal {public: int age;};class dog : public animal{//继承的语法public: string kind = "狗";};三种继承的方式继承方式一共有三种 公共继承 保护继承 私有继承如上图

2021-04-03 15:08:45 90

原创 C++运算符重载

运算符重载作用:用户自己编写运算符功能,两个类之间直接用普通运算符不行,那就重载运算符用法:将 成员函数/全局函数 名起为 operator<符号>加号运算符重载#include <iostream>using namespace std;class person {public: int num;};person operator+ (const person &p1,const person &p2) { person* temp = n

2021-04-03 12:42:08 72

原创 C++ 友元的概念和使用

友元当private的元素需要被类外元素访问的时候,就将其通过关键字friend设定为友元一、全局函数例子:class phone{ private: int num;}void getNum(phone *p){ cout<<p->num<<endl;//因为private的原因这样是获取不了的}设定友元全局函数class phone{ friend void getNum(phone *p);//在类内认定友元全局函数 private:

2021-04-03 10:15:41 115

原创 C++常函数&常对象

常函数class phone{ int num; void getphone(){ num = 10;//根this->num=10一样 //phone *const this; this = NULL;//this指针不可修改指向,因为它本质上是个指针常量 }}当在成员函数后面加入了一个const之后class phone{ //不加const的时候,是phone *const this //加了const之后,是const phone *const th

2021-04-03 10:14:38 167

原创 C++对象模型和this指针

对象模型非静态成员变量占用类对象空间静态成员变量不占用类对象空间,而是占用全局区的空间函数也不占用类对象空间,程序共享这个函数每个空对象会占用一个内存地址,所以会分配一个字节的空间this指针指向调用这个成员函数的类作用:一、区分形参和本类class phone{ string name; string getName(string name){ //name=name;//会导致问题 this->name = name;//this指向本类,很好的做了区分 }}

2021-04-03 10:13:17 57

原创 C++析构函数和构造函数的详解

析构函数和构造函数编译器会提供一个空的无参的析构函数和构造函数,在类的new或者实例化 和delete的时候会自动调用析构函数: 语法: <类名> () 定义 类的初始化函数 一般用于成员变量的初始化赋值 注意事项: 构造函数有参数,所以能够重载 调用方法: 有参调用和无参调用 普通构造和拷贝构造拷贝构造的一般写法:意思是将构造函数的形参的所有属性拷贝到这个新定义的类实例里面class Person{ //若不写,则编译器会自动调用默认拷贝构造函数,将

2021-04-03 10:10:50 220

原创 C++中类的基础认知

几种权限//不写的情况下默认为privateprivate :允许类内成员访问protected :允许类内成员,子类访问public :允许类内成员,子类,类外访问深拷贝和浅拷贝的区别浅拷贝:简单的值拷贝操作;问题:堆区的内存重复释放。一般出现在成员变量是指针,有用到new的情况。例子:class Person{ int *m ; Person(const Person &p2){ m = p2.m; //这里是将指针的地址放给了m,内存是两个类公用 } }

2021-04-03 10:07:36 84

原创 C++与C的区别

函数重载C不支持函数的重载C++支持函数参数的默认值C的函数参数不能有默认值C++的函数参数默认值从第一个有默认值的变量开始往右必须都有标准输入输出流C中是通过使用头文件stdio.h#include <stdio.h>printf();scanf();C++是通过使用iostream和std的命名空间#include <iostream>using namespace std;cout<<a<<endl;cin>>

2021-04-02 16:10:43 57

原创 C++内存四区

内存四区代码区:存放函数的二进制代码,由系统管理全局区:全局变量和静态变量以及常量(字符串常量,全局const)堆区:由程序员分配和释放,若程序员不释放,则由程序结束时由操作系统栈区:由编译器自动分配释放,存放函数的参数值及局部变量程序运行前: 生成exe可执行程序,未执行该程序分为两个部分 代码区: 存放cpu执行的机器指令 代码区是共享的,目的是对于频繁执行的程序,内存中只需要由一份代码 代码区是只读的,放置程序意外的更改了它 全局区: 全局变量和静态变量存放的地方

2021-04-02 15:58:34 90 1

原创 C++中一些比较常用但是容易忘记的东西

变量命名不能为关键字下划线,数字,字母开头只能为下划线或者字母几种常用变量占用的空间int 4char 1bool 1float 4注意float的变量赋值时后面要加个f 如float temp = 3.14fdouble 8long 4long long 8string 无特定长度转义字符\n 换行\t 跳到下一个tab位置\\ 输出'\'字符串stringchar str[]=“abcde” 右有中括号,即使没

2021-04-02 15:57:32 51

原创 C++中一些比较偏门的操作

三目运算符a是否比b大,是的话返回a,否则返回ba>b ?a:b;几个跳出循环的手段break,continue、gotobreak是直接跳出这个循环continue是本次循环停止,直接执行下次循环的代码goto <标志> 无条件的跳到goto标志指向为位置 如: goto FLAG; return 0; FLAG:则不会执行return 0;数组的神奇操作int a[]={0,1,2,3,4,5};sizeof(a)/sizeof(a[0]);数组

2021-04-02 15:55:50 91

原创 C++中函数的相关操作

函数形参默认值:从第一个参数给定默认值的位置开始往右必须要有默认值int swap(int a,int b=10)//可以,有默认值的在右边int swap(int a=10;,int b)//不可以有默认参数的位置可以调用时可以不写参数int swap(int a,int b=10) int main(){ swap(10); return 0; } int swap(int a,int b){//声明有默认值了,实现就不能有,反之一样 }函数占位参数:

2021-04-02 15:51:08 55

原创 C++中const的使用

&引用操作给一个变量起一个别名如:int a = 10; //a是指向一个int型内存,内存内容为10 int &b = a; //b为a的引用,b和a的属性一样,无论操作a还是操作b操作的都是同一块内存的内容注意事项: 引用需要初始化 //int &b;错误 int &b = a;正确 引用后不能够更改引用,但是能更改内容 //b = c,b的值改为c的值,b还是a的引用&引用作函数参数以引用作为形参,能够更改main函数中的a,bvoid

2021-04-02 15:44:58 95

原创 二叉树层序创建

二叉树层序遍历问题所在按下面程序的写法,*temp用malloc申请内存的时候它的两个子节点指针都是为NULL的,所以如果只是将子节点的指针入队,入队时收到的内容就为NULL。那么出队的时候也出NULL,就无法分辨入队的是属于哪个节点的子节点指针。无法形成二叉树。解决方法为了避免这种情况,我们将指向子节点的指针的地址(指向子节点的二级指针)入队,用以辨别这是哪个节点的子节点指针。比如对于第一个节点,输入了它的两个子节点的的指针的地址。随后出队的时候出的就是指向第一个节点的左子节点的指针的地址,通过

2021-03-22 23:54:09 696

转载 epoll详解(转载)

https://blog.csdn.net/m0_45867846/article/details/106622163?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242

2021-03-20 09:32:30 61

转载 KMP算法的一个转载

比较懒,直接转载一个大佬的博客,方便自己用https://blog.csdn.net/qq_36903042/article/details/104833212

2021-03-19 22:04:54 49

原创 如何生成core文件

第一步,解除core文件大小限制目前网上找到的方法不知道为什么运行了之后用ulimit -a查看并没有更改。于是自己摸索了一套方法:首先在~/.bashrc最底下添加一句话ulimit -c unlimited目的是为了每次打开终端都将core文件限制解除#ulimit -c unlimited 加在最下面sudo vim ~/.bashrc其次在/etc/sysctl.conf下添加一句kernel.core_pattern = /home/lzw/corefile/core.%e-

2021-03-14 17:27:28 449

转载 Linux下静态库、动态库的创建和使用

Linux下静态库、动态库的创建和使用

2021-03-13 13:45:38 60

转载 Java匿名内部类

某位老哥的博客总结匿名内部类就是直接在main函数里面实现抽象类或者接口方法,而不通过创建新的类继承抽象类或者接口并重写方法。省掉了创建一个使用次数很少的子类的过程。

2021-03-08 22:01:27 77

转载 wiringPi库详解转载

某位老哥的博客

2021-03-08 21:59:20 78

转载 qt编写ros节点界面

某位老哥的博客

2021-03-06 20:27:53 248

转载 ubuntu下qt无法输入中文解决办法

某位老哥的博客

2021-03-06 20:26:10 173

转载 ubuntu 16.04安装ros&qt

官网教程某位老哥的教程

2021-03-06 20:25:22 120

linux嵌入式开发常用软件

Win32DiskImager、Arduino_Ide、usb转TTL驱动、串口调试助手、FileZilla、夜神模拟器

2021-02-24

嵌入式前三阶段学习代码例程

陈立臣很帅

2021-02-24

linux嵌入式开发常用库

curl库,wiringPi库,openssl,交叉编译工具

2021-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除