自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 VS2017中libcurl访问https返回错误码51和60的解决办法

VS2017中libcurl访问https返回错误码51和60的解决办法1、错误码60的解决方法:添加下面这行代码:curl_easy_setopt(easy_handle, CURLOPT_SSL_VERIFYPEER, 0);2、错误码51的解决方法:添加下面这行代码curl_easy_setopt(easy_handle, CURLOPT_SSL_VERIFYHOST, 0);...

2019-10-16 19:29:43 1341

原创 C++中类的声明、实现、调用

文章目录C++中类的声明、实现、调用C++中类的声明、实现、调用1、在头文件中声明class 类名 : 继承方式 父类{成员变量;public: //访问控制限制符// 构造函数类名(形参表);// 析构函数~类名(void);// 其它成员函数返回值 函数名(参数列表);};2、源文件实现类的相关函数返回值 类名::函数名(参数列表){}3、调用时只需要导入头...

2019-08-29 17:09:36 889

原创 C++中对象的创建方法

文章目录C++中对象的创建方法C++中对象的创建方法在栈上创建:类名 对象; // 不需要括号 或者类名 对象(实参);在堆上创建:类名* 对象指针 = new 类名; 或者类名* 对象指针 = new 类名(实参);创建多个对象:类名 对象 = {(实参),(实参),(实参)};类名* 对象指针 = new 类名[n]{(实参),(实参),(实参)};注意:通过malloc创建的类...

2019-08-29 17:06:37 290

原创 C++中对象的创建过程

文章目录C++中对象的创建过程C++中对象的创建过程对象的创建过程1、分配类型所需要空间,无论栈还是堆。2、传递实参调用构造函数,完成如下任务:A、根据继承表依次调用父类的构造函数。B、根据成员变量的顺序依次调用成员变量的构建函数。C、执行构造函数体中的代码。注意:执行构建函数的代码是整个构造函数的最后一步,要保证构造函数代码所需要的一切资源和先决条件在该代码执行前已经准备充分,...

2019-08-29 17:04:26 14100

原创 C++中的构造函数

文章目录C++中的构造函数C++中的构造函数1、什么是构造函数:类的同名函数就是构造函数,没有返回值。2、什么时候调用,谁调用,调用几次?创建类型对象时会被自己调用(每创建一个类对象就会调用一次),对象整个生命周期中一定会被调用一次,只能被调用一次。3、负责干什么成员变量的初始化,分配相关资源,设置对象的初始状态。class 类名 : 继承方式 父类{// 构造函数类名(形参表...

2019-08-29 17:03:25 105

原创 C++类的访问控制限定符

文章目录C++类的访问控制限定符C++类的访问控制限定符public:公有成员,在任何位置都可以访问private:私有成员,只能类(自己)的成员函数中访问protected:受保护成员,只能在类(自己)和子类中访问注意:类中的成员变量、成员函数默认是 private,结构中的成员变量、成员函数默认是 public。注意:C++中类和结构的区别只有成员函数和成员变量默认访问权限不同。...

2019-08-29 17:01:24 564

原创 C++中类的定义与实例化

文章目录C++中类的定义与实例化C++中类的定义与实例化class 类名 : 继承方式 父类 若无父类则从:开始都可以不写{public/private/protected: //访问控制限制符 成员变量; // 构造函数 类名(形参表) { } // 析构函数 ~类名(void) { }};...

2019-08-29 17:00:15 727

原创 C++中的类和对象

文章目录C++中的类和对象C++中的类和对象1、通过分析"对象"的属性和行为设计出一个类。2、类就是数据类型简单类型:只能表示一个属性(变量),C/C++内建数据类型数组类型:可以表示多个属性(变量),类型必须相同。结构类型:可以表示多个属性(变量),但缺少行为(函数)。类类型:既能表示属性,也能表示行为,一种复合数据类型。3、对象就是类这种数据类型创建出的实例,相当于结构变量。...

2019-08-29 16:58:23 99

原创 C++中new/delete与C语言的malloc相同点和不同点(区别)

文章目录C++中new/delete与C语言的malloc相同点和不同点(区别)不同点:相同点:C++中new/delete与C语言的malloc相同点和不同点(区别)不同点: C++ C身份 运算符 标准库函数参数 类型(自动计算) 字节数(手动计算)返回值 带类型的地址 void*调用构造 自动调用 不...

2019-08-20 19:13:23 307

原创 C++中的内存管理

文章目录C++的内存管理C++的内存管理1、new/delete C++具备申请/释放堆内存功能的运算符。相当于C语言中的malloc和freenew 类型:会自动计算类型所需要的字节数,然后从堆中分配对应字节数的内存,返回内存的首地址(具备类型的指针)delete 指针:会自动释放内存注意:new/delete 与malloc/free不能混用,因为 new和delete会自动调用类...

2019-08-20 19:10:05 106

原创 C++中的引用

文章目录C++中的引用引用就是取别名引用型参数引用型返回值C++中的引用引用就是取别名1、引用的基本特性引用就是取别名,声明一个标识符为引用,就表示该标识符是另一个对象的外号。 1、引用必须初始化,不存在空引用,但有悬空引用(变量死了,名还留着)。 2、可以引用无名对象和临时对象,但必须使用常引用。 3、引用不能更换目标引用一旦完成了定义和初始化就和普通变量名一样了,它就代表了目标...

2019-08-20 19:07:58 164

原创 C++中的内联函数

文章目录内联函数内联函数1、普通函数调用时是生成调用指令(跳转),然后当代码执行到调用位置时跳转到函数所在的代码段中执行。2、内联函数就是把函数编译好的二进制指令直接复制到函数的调用位置3、内联函数的优点就是提高程序的运行速度(因为没有跳转,也不需要返回),但这样会导致可执行文件增大(冗余),也就是牺牲空间来换取时间。4、内联有显式内联和隐式内联显式内联:在函数前 inline(C语言...

2019-08-20 19:02:40 206

原创 C++中的默认形参

文章目录默认形参默认形参在C++中函数的形参可以设置默认值,调用函数,如果没有提供实参,则使用默认形参。如果形参只有一部分设置了默认形参,则必须靠右排列函数的默认形参是在编译阶段确定的,因此只能使用常量、常量表达式、全局变量数据作为默认值。如果函数的声明和定义需要分开,那么默认形参设置在声明、定义,还是声明定义都需要设置?只需要在函数声明时设置默认形参即可...

2019-08-20 19:00:18 1791

原创 C++中的函数重载

文章目录C++中的函数重载函数重载重载实现的机制extern "C"重载的作用域重载解析确定重载函数的三个步骤指针类型也会对函数的重载造成影响C++中的函数重载函数重载在同一作用域下,函数名相同,参数列表不同的函数,构成重载关系重载实现的机制C++代码在编译时会把函数的参数类型添加到参数名中,借助这个方式来实现函数重载,也就是C++的函数在编译期间经历了换名的过程。C函数和C++函数是...

2019-08-20 18:59:24 139

原创 C++的void类型

文章目录C++的void*C++的void*1、C语言中void* 可以与任意类型的指针 自动转换。2、C++void不能给其它类型的指针直接赋值,必须强制类型转换,但其它类型的指针可以自动给void赋值。3、C++为什么这样修改void*为了更安全,所以C++类型检查更严格。C++可以自动识别类型,对万能指针的需求不再那么强烈。...

2019-08-20 18:53:36 616

原创 C++的布尔类型

文章目录C++的布尔类型C++的布尔类型1、有真正的布尔类型。bool是C++中的关键字,在C语言中使用bool类型需要导入stdbool.h头文件2、true false在C++中是关键字,而在C语言中不是3、在C++中 true false 是1字节,而在C语言中是4字节...

2019-08-20 18:52:01 388

原创 C++的枚举

文章目录C++的枚举C++的枚举1、定义、使用方法与C语言基本一致。2、类型检查比C语言更严格。

2019-08-20 18:51:13 109

原创 C++的联合

文章目录C++的联合C++的联合1、不再需要 typedef,在定义结构变量时,可以省略 union 关键字2、成员可以是函数(成员函数),在成员函数中可以直接访问成员变量,不需要.或->,3、有一些隐藏的成员函数(构造函数、析构函数、拷贝构造、赋值构造)...

2019-08-20 18:50:13 240

原创 C++的结构

文章目录C++的结构C++的结构1、不再需要 typedef,在定义结构变量时,可以省略struct关键字2、成员可以是函数(成员函数),在成员函数中可以直接访问成员变量,不需要.或->,但是C的结构成员可以是函数指针3、有一些隐藏的成员函数(构造函数、析构函数、拷贝构造、赋值构造)4、可以继承,可以设置成员的权限,(面向对象)。...

2019-08-20 18:49:16 176

原创 C++的名字空间

文章目录C++的名字空间C++的名字空间1、为什么需要名字空间在项目中函数名、全局变量、结构、联合、枚举、类,非常有可能名字冲突,而名字空间就对这些命名进行逻辑空间划分(不是物理单元划分),为了解决命名冲突。2、什么是名字空间在C++中经常使用使用多个独立开发的库来完成项目,由于库的作者或开发人员根本没有见过面,因此命名冲突再所难免,C++之父为防止命名冲突给C++设计一个名字空间的机制...

2019-08-17 15:55:11 208

原创 C++与C的区别

文章目录#C++与C的几个区别1、C++完全兼容C2、C只支持面向过程的编程,C++在C的基础上,还支持面向对象的编程思想3、C++支持运算符、函数重载4、C++支持泛型编程、模板5、C++支持异常处理6、C++对类型的检查比C更严格...

2019-08-17 15:31:44 257

原创 C++简介

文章目录C++介绍C++介绍C++之父:本贾尼·斯特劳斯特卢普。1979年4月份贝尔实验室的本贾尼博士在分析UNIX系统分布内核流量分析时,希望有一种有效的更加模块化的工具。1979年10月完成了预处理器Cpre,为C增加了类机制,也就是面向对象,1983年完成了C++的第一个版本,C with classes也就是C++。...

2019-08-17 15:28:58 157

原创 C语言从缓冲区写入文件的条件

文章目录C语言从缓冲区写入文件的条件C语言从缓冲区写入文件的条件由于文件读写时为了提高效率,增加了缓冲区,所以当进行写操作时,数据并没有立即写入文件,而是暂时存储在缓冲区中,只有达到某些条件时才写入文件:1、由写入状态切换到读取状态2、遇到\n符3、缓冲区满4k4、手动刷新 fflush(FILE*) 5、文件关闭...

2019-08-08 18:09:15 1484

原创 TCP/IP四层网络体系结构

文章目录TCP/IP四层网络体系结构TCP/IP四层网络体系结构物理层:负责通信网络收发数据包。网络层:选择、流量控制、网络拥塞问题,IP协议是这一层的核心传输层:机器之间建立用于会话的端到端连接(用于数据传输),该层的核心是TCP/UDP应用层:主要为用户提供针对性的服务,这一层的代表协议有:HTTP(代表浏览器),SMTP(代表简单邮件传输协议),FTP(文件传输协议),SNMP(简...

2019-08-08 17:12:09 1550

原创 OSI参考模型

文章目录OSI参考模型OSI参考模型OSI从下到上一共七层:物理层(在终端设备间传输比特流)数据链路层(定义物理地址)网络层(基于数据包的逻辑地址进行转发,寻找网络中目的的位置,并在去往目的的多条路径中选择一条最佳的路径。)传输层(建立端到端的连接)会话层、表示层、应用层...

2019-08-08 17:10:41 86

原创 Linux进程间的通信方式

文章目录Linux进程间的通信方式Linux进程间的通信方式1、什么叫进程间通信(IPC,Interprocess communication):是指两人个或多个进程之间交换数据的过程叫进程间通信。2、进程之间为什么需要通信?当需要多个进程协同工作高效率完成任务时,因为每个进程都个独立的个体(资源单位),进程之间就需要进行通信。3、进程间通信方式: 1、简单进程间通信:命令行参数,环境变...

2019-08-08 17:07:51 89

原创 进程和线程的区别

文章目录进程和线程的区别进程和线程的区别1、进程是资源分配的基本单位,线程是调度的基本单位。2、线程没有自己独立的内存资源,但是有独立的栈,所有线程共享它所属的进程的资源3、进程可以独立执行,线程必须依赖它的所属进程提供入口函数4、进程和线程是一对一或一对多的关系,进程拥有自己的地址空间,线程没有5、创建线程比创建进程所需要的系统开销小。...

2019-08-08 17:03:12 74

原创 C语言标准IO和系统IO哪个更快以及原因

文章目录C语言标准IO和系统IO哪个更快以及原因C语言标准IO和系统IO哪个更快以及原因标准IO更快因为标准IO使用了缓冲技术,当数据写入时并没有立即把数据交给内核,而是先存放在缓冲区中,当缓冲区满时,会一次性把缓冲区中的数据交给内核,写入到文件中,这样就减少了内核态与用户态的切换次数。而系统IO每写一次数据就要进入一次内核态,这样就浪费了大量时间进行内核态与用户态的切换,因此用时更长。...

2019-08-08 17:01:49 767

原创 程序在内存中的分段

文章目录程序在内存中的分段程序在内存中的分段1、代码段/只读段:二进制指令、字符串字面值,具有const属性且被初始化过的全局、静态变量。2、数据段:被初始化过的全局变量和静态变量。3、bss段:未被初始化过的全局变量和静态变量,进程一旦加载成功,就会把这段内存清理为零。4、堆:动态的分配、管理,需要程序员手动操作。有低地址向高地址拓展5、栈:非静态的局部变量,包括函数的参数、返回值。...

2019-08-08 17:00:19 751

原创 C语言头文件有哪些作用

文章目录C语言头文件有哪些作用C语言头文件有哪些作用1、说明对应的.c文件的内容有哪些(声明函数、全局变量)2、定义结构、联合、枚举、宏3、类型重定义...

2019-08-08 16:58:20 321

原创 C语言头文件里可以写些什么

文章目录C语言头文件里可以写些什么C语言头文件里可以写些什么1、头文件卫士:#ifndef #define #endif搭配,防止头文件被重复包含2、可以定义结构、联合、枚举、宏、变量3、可以定义头文件对应的.c文件中的函数。...

2019-08-08 16:57:34 1585

原创 include添加头文件两种方式的区别

文章目录include<> 和include ""的区别include<> 和include ""的区别1、<>引用的是编译器的类库路径里面的头文件,像stdio.h等等2、当用"“时,会先在当前程序目录寻找头文件,如果找到就用找到的,如果没找到,再去编译器的类库路径里寻找。3、一般情况下,我们用”"来引用自己编写的头文件,用<>引用编译器自...

2019-08-08 16:56:29 316

原创 Linux sleep函数

文章目录sleep函数sleep函数unsigned int sleep(unsigned int seconds);功能:休眠指定的秒数,当有信号来临时会提前醒来,提前醒来会返回剩余的秒数,或者睡够了,返回0。示例:#include <stdio.h>#include <signal.h>#include <unistd.h>void sig...

2019-08-05 20:17:57 1220

原创 Linux 闹钟(alarm)

文章目录alarm函数alarm函数头文件include<unistd.h>unsigned int alarm(unsigned int seconds);功能:告诉内核在seconds秒之后,向当前进程发送SIGALRM信号。返回值:如果之前设定的时间还没有到,则会重新设置(覆盖),并返回之前设置的剩余秒数。示例1:#include <stdio.h>...

2019-08-05 20:14:01 1437

原创 Linux pause函数

文章目录pause函数pause函数int pause(void);功能:一旦执行进程就会进入无限的休眠(暂停),直到遇到信号。示例:#include <stdio.h>#include <signal.h>#include <unistd.h>void sig(int signum){ printf("我收到了Ctrl+c信号\n");...

2019-08-05 19:57:37 4482

原创 Linux发送信号

目录kill的使用kill的使用getpid()获取当前进程的进程号 头文件#include<unistd.h>ps -aux 查看所有进程int kill(pid_t pid, int sig); 功能:向指定的进程发送信号 pid:进程id pid > 0 向进程号为pid的进程发送信号 pid = 0 向同组一进程组的进程发送信号 pid = -1...

2019-08-05 19:48:14 485

原创 Linux信号的捕获

目录信号处理注册函数信号处理注册函数typedef void (*sighandler_t)(int);功能:自定义的函数,以函数指针的方式用于下面的signal信号注册函数中的handler函数sighandler_t signal(int signum, sighandler_t handler);功能:信号处理注册函数signum:信号的编号,1~31,也可以是宏handler...

2019-08-05 09:16:39 680

原创 Linux信号

目录信号的基本概念信号的基本概念1、中断:中止(注意不是终止)当前正在执行的任务,转而执行其它任务(可能返回也可能不返回),中断分为硬件中断(硬件设备产生的中断)和软件中断(其它程序产生的中断)。2、信号:是一种软件中断,提供了一种异步执行任务的机制。3、常见的信号 SIGINT(2) Ctrl+c 产生的信号 SIGQUIT(3) Ctrl+\ 产生的信号 SIGABRT(6) ...

2019-08-05 09:03:18 113

原创 Linux系统学习笔记(第四天)

目录虚拟内存内存管理API虚拟内存每个进程都有各自独立的4G字节的虚拟地址空间,我们在编程时使用的永远都是这4G的虚拟地址空间中的地址。永远无法直接访问物理地址。操作系统不让程序直接访问物理内存而只能使用虚拟地址空间,一方面为了操作系统自身的安全,另一方面可以让程序使用到物理内存更大的地址空间(把硬盘上的特殊文件)4G的虚拟地址空间被分为两个部分: 0~3G 为用户空间 3G~4G ...

2019-07-27 11:51:02 84

原创 Linux系统学习笔记(第三天)

目录错误处理环境变量内存管理进程映像错误处理1、通过函数返回值表示错误 返回值合法表示成功,非法表示失败 返回有效指针表示成功,空指针(NULL/0xffffffff)表示失败 返回0表示成功,-1表示失败。 永远成功,printf2、通过errno表示错误 errno是一个全局变量,它的声明在errno.h文件中,它的值随时可能发生变化。 可以将它转换成有意义的字符串,stre...

2019-07-27 11:47:41 78

空空如也

空空如也

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

TA关注的人

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