- 博客(13)
- 收藏
- 关注
原创 [提高篇]宏定义中的运算符:#和##
宏定义可以包含两个运算符:#和##。编译器不会识别这两种运算符相反,它们会在预处理时被执行。一.#运算符将一个宏的参数转换为字符串字面量。它仅允许出现在带参数的宏的替换列表中。(一些C程序员将#操作理解为“stringization(字符串化)”;其他人则认为这实在是对英语的滥用。)#运算符有大量的用途,这里只来讨论其中的一种。假设我们决定在调试过程中使用PRINT_INT宏作为一个便捷的方...
2019-08-10 14:43:41
406
1
原创 [基础篇]Debug和Release的区别
Debug 版本Debug 就是“调试”的意思,Debug 版本为了方便程序员的调试,编译器在生成 Debug 版本的程序时会加入调试辅助信息,并且很少会进行优化,程序还是跟原来的差不多。Release 版本Release 就是“发行”的意思,Release 版本就是最终交给用户的程序,编译器会对它进行优化,以提高执行效率,虽然最终的运行结果仍然是我们想要的那样,但底层的执行流程可能已经改变...
2019-07-30 09:23:42
475
原创 [Qt篇]计算机丢失qt5core.dll与Application failed to start的解决方法
一. 出现的问题:无法启动此程序因为计算机丢失qt5core.dll与Application failed to start because it could not find or load the QT platform plugin “windows”二.解决方法:在系统的环境变量的Path添加对应的dll动态库文件且在可执行文件目录下放platforms文件 即可...
2019-07-29 18:07:07
650
原创 [Lua篇]时间戳
获取当前时间的方法打印的结果时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。注:该时间戳单位是秒...
2019-07-29 15:08:00
1238
原创 [基础篇]函数传参的几种方式
一.按值传递1、实参和形参各占一个独立的存储空间2、形参的存储空间是函数被调用时才分配的调用开始,系统为形参开辟一个临时的存储区,然后将实参传递给形参,这是形参就得到了实参的值。void swap1(int x, int y){ int tmp; tmp = x; x = y; y = tmp;}按值传递作两数交换时只是简单的对形参进行两数交换,实参未收到任何影响。在两数交换...
2019-07-26 17:55:21
1002
原创 [Lua篇]简单数据类型转换
一.转换成字符串tostring()可以将数值类型转换为字符串类型 --这里 tostring 里存的是数值,转换成字符串后带“ ” SendJson['radar']['tune'] = tostring(l_tempTuneData[2]) SendJson['radar']['sea'] = tostring(l_tempSeaData[4]) SendJson[...
2019-07-25 22:49:55
1583
原创 [Lua篇]对_ENV的理解
一.首先看下_ENV里面存放的内容我们可以看出其实lua一切皆表,所有的内容都可以通过_ENV来查找。二.简单的实例l_tempPower = { [33] = 0}l_tempButton = { [34] = 1, [35] = 1, [36] = 0, [37] = 0, [40] = 0, [41] = 0, [...
2019-07-24 23:05:08
3185
1
原创 [QT篇]使用QTcpSocket粘包的处理方式
一.为什么会出现粘包?如果利用tcp每次发送数据,就与对方建立连接,然后双方发送完一段数据后,就关闭连接,这样就不会出现粘包问题(因为只有一种包结构)。关闭连接主要要双方都发送close连接。如:A需要发送一段字符串给B,那么A与B建立连接,然后发送双方都默认好的协议字符如”hello give me sth abour yourself”,然后B收到报文后,就将缓冲区数据接收,然后关闭连接,这...
2019-07-18 13:56:25
2826
原创 [Lua篇]C++和Lua相互传递数据
一. 创建Lua虚拟机//为c++和Lua交互提供了一个虚拟栈lua_State *lua_state = luaL_newstate();二. 加载Lua库int bRet = luaL_loadfile(L, addr.lua);三. 运行Lua脚本(附带C/C++调用Lua函数) bRet = lua_pcall(L, 0, 0, 0); if (bRet) { q...
2019-07-18 11:18:13
936
原创 虚函数表,虚表指针与内存分配(一)
在此之前先了解下何为多态多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。虚继承的作用是减少了对基类的重复,代价是增加了虚表指针的负担(更多的虚表指针)。(当基类有虚函数时):.1. 每个类都有虚指针和虚...
2019-03-05 00:55:31
556
翻译 时间复杂度与空间复杂度解析
1.算法的效率虽然计算机能快速的完成运算处理,但实际上,它也需要根据输入数据的大小和算法效率来消耗一定的处理器资源。要想编写出能高效运行的程序,我们就需要考虑到算法的效率。算法的效率主要由以下两个复杂度来评估:时间复杂度:评估执行程序所需的时间。可以估算出程序对处理器的使用程度。空间复杂度:评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。设计算法时,一般是要先考虑系统环...
2019-03-02 22:36:29
1634
1
原创 进程管理(一)
1、程序:是存放在磁盘文件中的可执行文件。2、进程:程序执行实例,进行中的程序;(操作系统用红黑数存进程信息)liux是多进程系统,进程中包含PCB,程序,程序的数据。3、不同进程之间都是独立的,有独立的空间。在只读段中是init进程入口。共享内存映射区域可以存放你所用的数据库。4、程序状态转换图通过状态机转换。程序一开始是就绪态,被cpu调用的是内核运行态。可中断睡眠状态,可被唤醒回到...
2019-03-02 15:13:03
124
翻译 懒汉式单例
懒汉式是典型的时间换空间,也就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间。当然,如果一直没有人使用的话,那就不会创建实例,则节约内存空间class Singleton{//-使用一个类变量缓存曾经创建的类实例对象private:static Singleton *instance;//-对构造器用private修饰,隐藏起来,禁止直接new该类的构造器 Sing...
2019-03-02 14:13:40
317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人