随笔分类 -  C/C++

摘要:一、 MQTT遗嘱 MQTT 可以设置遗嘱,客户端在连接Broker的时候将遗嘱内容(也是topic + payload形式,遗嘱也有一个主题)发送给Broker并保存在Broker中,当客户端因为非正常原因断开与Broker的连接时,Broker会将遗嘱信息发送给订阅了该主题(订阅遗嘱的主题)的客 阅读全文
posted @ 2020-07-13 22:46 ay-a 阅读(3198) 评论(0) 推荐(0)
摘要:有时候需要进行一些计算,程序是使用c来实现的,使用c来进行计算不是很灵活,这时候可以使用脚本来进行计算,这样灵活,且易于扩展。写了一个简单的Demo进行验证,具体例子如下。 #include <QCoreApplication> #include <QJSEngine> #include <QStr 阅读全文
posted @ 2020-06-24 21:53 ay-a 阅读(1852) 评论(0) 推荐(0)
摘要:一、内联函数 ​ 对于代码量较少,而且经常调用的函数,可以使用内联函数来减少函数调用的开销。内联函数是在编译时将函数调用处的函数体替换,类似于宏展开。 ​ 制定内联函数的方法是在 函数的定义 ( 不是声明处 )出增加 关键字。在函数的声明处添加 关键字虽然没有错,但是这种做法是无效的,编译器会忽略在 阅读全文
posted @ 2019-08-25 21:49 ay-a 阅读(395) 评论(0) 推荐(0)
摘要:​ 经常会遇到需要在类中创建线程,可以使用静态成员函数,并且将类实例的指针传入线程函数的方式来实现。 实现代码代码如下: 阅读全文
posted @ 2019-08-25 20:34 ay-a 阅读(6104) 评论(0) 推荐(0)
摘要:一个简单的动态链接库的生成和调用例子,太过简单,大神请绕道。 一、创建动态链接库 1. 使用vs创建工程选择动态链接库。 2. 在项目中创建源文件和头文件,并在文件中添加以下代码。 3. 在头文件中添加以下代码 4. 在源文件文件中添加以下代码 5. 在工程属性, 中添加预定义宏 . 6. 在工程属 阅读全文
posted @ 2019-06-04 22:56 ay-a 阅读(14877) 评论(0) 推荐(1)
摘要:一、拷贝控制操作 ​ 当定义一个类时,显示或隐式地指定了此类型的对象在拷贝、赋值和销毁时所执行的操作,通过三个特殊的成员函数来控制这些操作,分别是 。拷贝构造函数定义了当使用同类型的另一个对象初始化新对象时的操作,赋值运算符定义了将一个对象赋值给同类型的另一个对象时的操作,析构函数定义了此类型的对象 阅读全文
posted @ 2019-02-27 22:45 ay-a 阅读(413) 评论(0) 推荐(0)
摘要:[TOC] 一、为什么要重载赋值运算符 ​ 在前面的内容中讲解 "拷贝构造函数调用的时机" 时说明了初始化和赋值的区别:在定义的同时进行赋值叫做 ,定义完成以后再赋值(不管在定义的时候有没有赋值)就叫做 。初始化只能有一次,赋值可以有多次。 ​ 当以拷贝的方式初始化一个对象时,会调用拷贝构造函数;当 阅读全文
posted @ 2019-02-25 23:40 ay-a 阅读(3170) 评论(0) 推荐(1)
摘要:一、浅拷贝及其不足 对于基本类型数据以及简单的对象,它们的拷贝比较简单,就是直接复制内存。比如下面的代码: b 和 obj2 都是以拷贝的方式初始化的,具体来说,就是将 a 和 obj1 所在内存中的数据按照二进制位(Bit)复制到 b 和 obj2 所在的内存,这种默认的拷贝行为就是浅拷贝,这和调 阅读全文
posted @ 2019-02-24 22:49 ay-a 阅读(4297) 评论(0) 推荐(0)
摘要:一、拷贝构造函数调用的时机 ​ 当以拷贝的方式初始化对象时会调用拷贝构造函数,这里需要注意两个关键点,分别是 和`初始化对象` 1. 初始化对象 初始化对象是指,为对象分配内存后第一次向内存中填充数据,这个过程会调用构造函数,对象被创建后必须立即初始化。也就是说只要创建对象就会调用构造函数。 2.初 阅读全文
posted @ 2019-02-21 22:41 ay-a 阅读(2168) 评论(0) 推荐(0)
摘要:[TOC] 一、对象的拷贝 拷贝和复制是一个意思,对计算机来说就是利用已经存在的数据创建出一份新的和原有数据一模一样的数据。在C++中,拷贝是指用已经存在的对象创建出一个新的对象。严格来说,对象的创建包括两个阶段,首先要分配内存空间,然后再进行初始化。 分配内存空间就是在,就是在堆、栈或者全局数据区 阅读全文
posted @ 2019-02-20 22:48 ay-a 阅读(2019) 评论(0) 推荐(0)
摘要:一、冒泡排序 冒泡排序就是重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如数字从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升 阅读全文
posted @ 2018-10-20 22:01 ay-a 阅读(11769) 评论(0) 推荐(0)
摘要:一个栈的C语言实现,函数声明放在 line_list.h 头文件汇总,函数定义放在line_list.c 中,main.c 用来测试各个函数. 1.文件 stack.h 1. 文件 stack.c 1. 文件main.c 阅读全文
posted @ 2018-10-08 23:10 ay-a 阅读(307) 评论(0) 推荐(0)
摘要:一个线性表表实现,函数声明放在 line_list.h 头文件汇总,函数定义放在line_list.c 中,main.c 用来测试各个函数. 1.文件 line_list.h 1. 文件 line_list.c 1. 文件 main.c c // main.c include include "li 阅读全文
posted @ 2018-10-08 22:59 ay-a 阅读(219) 评论(0) 推荐(0)
摘要:一个链表实现,函数声明放在 list.h 头文件汇总,函数定义放在list.cpp 中,main.cpp 用来测试各个函数. <! more 1.文件list.h 1. 文件list.cpp 阅读全文
posted @ 2018-10-08 22:51 ay-a 阅读(2307) 评论(0) 推荐(0)
摘要:一、字符读取函数 fgetc (一)、函数介绍 fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。函数原型为: 为文件指针。 读取成功时返回读取到的字符,读取到文件末尾或读取失败时返回 在文件内部有一个位置指针,用来指向当前读写到的位置,也就是读写到第几个字节。在 阅读全文
posted @ 2018-08-15 22:52 ay-a 阅读(477) 评论(0) 推荐(1)