
C++
文章平均质量分 88
Mr.Zhang
这个作者很懒,什么都没留下…
展开
-
大小端字节序与序列化
大端字节序这是一种更适合人类读取数据的方式举个例子,有如下数据:0x12345678高—————>低 位按8位为一个字节逻辑(byte进行网络传输时不需要进行网络字节序转换)把上面数据拆分成4部分:0x12 0x34 0x56 0x78地址: 0x100 0x101 0x102 0x103|———|—12—|—34—|—56—|—78—|——|从左到右:低地址到高地址从左到右:高位到低位记忆方法:低高高低,这是一种便于人类读取的方式。像120,百位十位个位,也是从高原创 2020-09-23 11:43:57 · 2177 阅读 · 0 评论 -
作为C++程序员怎么能不会这些技巧?
直入主题作为C++程序员你不知道这些技巧?这哪能行?赶紧来学学。 以下是我在平时项目开发中常喜欢使用的一些技巧,希望对你有所帮助。(在恰当时候使用一些技巧能让你的代码变得更加美)(一)do{}while(false)使用在写代码的时候有没这种情况,伪代码:void model(){ if (条件1) { ...; // ...其他代码 if (条件2) { ...; if原创 2020-05-22 17:07:40 · 5203 阅读 · 0 评论 -
C++与Lua闭包
起因做游戏开发多少会接触lua,其中闭包也是挺常见的一种了,因为使用lua闭包的缘故,我就尝试着在C++使用lambda来写个。代码分析以下是lua的闭包代码:function fun1(param1) local i = param1 return function() i = i + 1 return i endendlocal test1 = fun1(1)lo...原创 2020-03-27 15:47:25 · 366 阅读 · 0 评论 -
C++宏的黑科技用法《结构体字节序自动转换》
背景慢慢的自己管理项目已经一年了,这也是我管理的第一个项目,期间触及了挺多的知识盲区,开始慢慢的摸索,慢慢的熟悉,将压力转化为了动力。我在这里想总结下作为新人的我在这一年里收获了什么。开始优化可能源于自己管理项目,我开始放飞自我,但凡自己感觉看不顺眼的地方就改改改(还好没改出什么大问题出来)。开始每优化一个代码我都会反复去测,生怕出问题。通过不同的写法来简化代码,期间用的最多的应该是宏吧!这...原创 2020-03-23 19:34:47 · 1144 阅读 · 0 评论 -
C++桌面显示恶搞
整理篇今日整理了一下自己的电脑,翻出了一些开始学习时觉得有意思的代码。我一直觉得编程始于兴趣,也强于兴趣,兴趣是我们学习最好的老师。虽然这里给出的代码没什么难度,获取可以说很简单,但这还是我好多年前学C++时学习的一个Windows编程的程序,希望能帮助正在初学的小伙伴们。展示先看看效果图吧正如图片所示,这只是一个让桌面错乱的一个程序。通过windows API很容易的实现。注意 这...原创 2020-03-08 22:06:49 · 2736 阅读 · 2 评论 -
C++初学者该如何写程序?
前序转眼一年多未写过博客了(工作太忙了),最近一直在思考一个问题,如果要写博客该写什么好?若想写的东西多可却很杂,那好像并没什么用。要不写个系列吧?那从哪里开始呢?要不从初学开始吧?初学篇未接触过编程前,大多数人都会觉得学了就可以什么都能干了,(可能很多程序员都有过或多或少的经历,朋友们可能会问你会黑别人电脑吗,当过黑客吗?不会!那你会修电脑吗?也不会!)其实程序员不是这样的没有...原创 2020-01-17 14:47:11 · 1912 阅读 · 0 评论 -
《工作笔记一》C++函数式宏定义的使用
什么是宏定义?通常宏定义的格式为:#define 标识符 字符串 相信大家都见过非常多了,通常我们编译过程中的预处理(预编译)工作又叫宏展开,将代码中的宏名替换为字符串。为什么要用宏函数?宏函数虽然在处理复杂的函数(例如递归函数)时宏会降低代码的执行效率,但是对于逻辑简单的函数来说,准确的使用宏函数往往能提高程序的执行效率,因为在主函数中调用普通函数的时候需要进行入栈跟出栈操作,而...原创 2018-07-11 22:55:41 · 1807 阅读 · 0 评论 -
Lambda表达式使用场景解析C++11
Lambda表达式的使用场景其实我在刚开始使用lambda的时候就挺好奇什么时候使用好,经常在不需要使用的时候使用上了,真的是多此一举,那么要在什么情况下使用呢? 因为lambda表达式又叫匿名函数(当然我们也可以理解为是一个未命名的内联函数),那么肯定就跟函数挂上关系了,通常情况写你在编程的时候需要将这段代码封装到一个函数里面再来调用,那这个时候就避免不了想函数名了,其实有时候取名字真的是...原创 2018-05-27 15:39:39 · 17151 阅读 · 4 评论 -
Linux-(C/C++)生成并使用静态库/动态库
静态库/动态库概要在Windows下静态库的后缀为:.lib、动态库后缀为:.dll;而在Linux下静态库的后缀为:.a、动态库的后缀为:.os。那么什么是静态库呢?首先我们来看看程序编译的大体流程:预处理——编译——汇编——链接在我们的项目开发中,有些代码会被反复使用,那么这时我们便可将这些代码编译成库的形式来调用,像静态库就是在可执行文件中包含库代码的一份完整拷贝,但这种方式有个很严重的缺点...原创 2018-05-15 16:35:12 · 31794 阅读 · 1 评论 -
重叠IO模型知识
什么是重叠IO重叠模型是一种异步IO模型。多线程结构中就考虑到采用异步的方式进行设备读写操作,即我们告诉系统对设备的读写数据,而同时应用程序的其他代码继续执行,直到获取设备操作完毕的系统通知。重叠IO的作用我们在这里做一下对使用重叠IO和非重叠IO的解释:非重叠IO的情况:在Windows中,我们通常使用CreateFile、WriteFile、ReadFile等函数对文件进行操作时,会让我们觉得...原创 2018-04-29 16:20:04 · 1080 阅读 · 0 评论 -
C++之Libcurl库实现HTTP协议传输数据
一直想写一些关于C++的博客,却一直没抽空来写,今天趁着代码打累了,来写写年前想写的博客。 在做项目时,因为我使用的后台使用.net core写的,那么C++就需要使用http协议来同后台进行交互了。C++要如何使用http协议呢?这里我推荐使用Libcurl这个库,不得不说这个库真的很强大(有兴趣的小伙伴可以去查阅查阅),当然也可以使用其他的,下面我们...原创 2018-03-15 21:09:34 · 10298 阅读 · 0 评论 -
C++之使用jsoncpp解析json数据
说到http协议那就离不开json数据的解析了,那么在C++中如何对json数据进行解析呢?博主在这里使用jsoncpp来解析json数据。 首先需要搭建jsoncpp的环境,这里我就不再详细介绍,给大家推荐一篇博客参考:博客地址。如果还没下载jsoncpp的读者,可以通过下面链接下载,下载链接,密码:9nl3。下面进入jsoncpp的使用说明: 一、引入头文件#inc...原创 2018-03-16 08:08:24 · 6735 阅读 · 0 评论 -
C++11之atomic原子操作
atomic介绍atomic对int、char、bool等数据结构进行了原子性封装,在多线程环境中,对std::atomic对象的访问不会造成竞争-冒险。利用std::atomic可实现数据结构的无锁设计。所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯.........原创 2018-04-18 16:09:09 · 25137 阅读 · 8 评论 -
C++各类字符串之间的转换
相信大家在写MFC代码时经常会遇到字符串的转换问题,下面是我之前摘抄起来的字符串转换方法:CString在MFC中非常常见的字符串格式,我在这里对CString做下介绍: CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓冲区长度。 有...原创 2018-04-18 23:12:53 · 1770 阅读 · 0 评论 -
IOCP模型浅析
什么是IOCPIOCP即是完成端口,完成端口会充分利用Windows内核来进行I/O的调度,是用于C/S通信模式中性能最好的网络通信模型,当初微软提出完成端口的初衷是为了解决“one thread per client ”的缺点, 它充分利用内核对象的调度,只使用少量的几个线程来处理和客户端的所有通信,消除了无谓的线程上下文切换,最大限度的提高了网络通信的性能,可以说在Windows中没有比它更好...原创 2018-05-02 14:38:16 · 1692 阅读 · 0 评论 -
epoll原理
转载地址:https://www.cnblogs.com/pluser/p/epoll_principles.htmlepoll原理设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻进程只需要处理这100万连接中的一小部分连接。那么,如何才能高效的处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的T...转载 2018-05-08 20:42:20 · 1222 阅读 · 0 评论 -
C/C++编译原理
整体过程C源程序——>预编译处理(.c)——>编译、优化程序(.s、 .asm)——>汇编程序(.obj、 .o、 .a、 .ko)——>链接程序(.exe、 .elf、 .axf等)C/C++编译就是将C/C++的代码映射到相应的机器码,以及讨论其中的内存管理模式,包括内存的分配,如何使用等等,整型、数组、指针等这些在内存中的实现机制。分点解析编译:将相应的高级语言代码映...原创 2018-04-26 22:36:17 · 805 阅读 · 0 评论 -
Windows消息机制
概述在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息驱动的。 一个消息是由消息的名称(UINT)和两个参数(WPARAM, LPARAM)组成。消息的参数中包含有重要的信息。例如对鼠标消息而言,LPARAM中一般包含鼠标的位置信息,而WPARAM参数中包含了发生该消息时,SHIFT、CTRL等键的状态信息,对于不同的消息类型来说,...原创 2018-04-27 14:13:25 · 250 阅读 · 0 评论 -
VS使用Mysql API连接Mysql的那点问题
这是我第一次写文章,请高手勿喷。我在这里想说说我在控制台和MFC两个不同的平台下使用Mysql API连接Mysql遇到的问题。1、在控制台下连接Mysql只需两个步骤,(1):项目->属性->配置属性 -> 链接器->输入 下找到附加依赖项,并在该选项中添加libmySQL.lib。(2)将Mysql的API相关的动态库Libmysql.dll,移到你的项目文件下,而相关...原创 2016-10-29 23:34:07 · 614 阅读 · 0 评论