自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 warning: missing braces around initializer

在结构体中多维或多个数组初始化的时候,其错误发生的原因是没有用大括号明确的区分出初始化数据的归类结构体时一种将不同类型的数据组合成一个有机整体的聚合数据类型。那么如果结构体中的成员的类型是数组或者结构体时呢?那么这个时候你再仅仅只是用一个大括号来对结构体进行初始化时,就会出现定义不明确的问题了,此外如果对一个多维数组你也只使用一个大括号来进行初始化时,同样也会出现定义不明确的问题。虽说一...

2019-04-01 10:33:21 301

原创 dump

一. 什么是dump文件Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。这种文件必须用专用工具软件打开,比如使用WinDbg打开。Dump文件能够保存程序内部的内存、堆栈、句柄、线程等程序运行相关的信息,非常具有重要性...

2019-03-14 15:11:04 287

原创 linux编译相关

-lpthread编译程序包括预编译, 编译,汇编,链接包含头文件了,仅能说明有了线程函数的声明, 但是还没有实现, 加上-lpthread是在链接阶段,链接这个库...

2019-03-09 17:06:42 159

原创 linux线程

介绍:什么是线程,线程的优点是什么线程在Unix系统下,通常被称为轻量级的进程一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。 一个进程可以有很多线程,每条线程...

2019-03-09 16:08:12 115

原创 编写泛型程序

编写模板时,代码不可能针对指定类型,但模板代码总是要对将使用的类型做一些假设, 在函数模板内部完成的操作限制了可用于实例化该函数的类型。程序员的责任是,保证用作函数实参的类型实际上支持所用的任意操作。以及保证在模板使用哪些操作的环境中那些操作正常运行。编写独立于类型的代码 编写模板代码时,对实参类型的要求尽可能少是很有益的。编写模板代码的两个重要原、...

2019-03-08 17:54:35 279

原创 reactor

在Reactor中,这些被拆分的小线程或者子过程对应的是handler,每一种handler会处理一种event。这里会有一个全局的管理者selector,我们需要把channel注册感兴趣的事件,那么这个selector就会不断在channel上检测是否有该类型的事件发生如果没有,那么主线程就会被阻塞,否则就会调用响应的事件处理函数即handler来处理典型的事件有连接、读取、...

2019-03-08 17:53:45 104

原创 时间对象

时间对象就像一个开关,它仅有两种状态,开和关,当一个时间处于开状态,我们称为有信号,否则无信号能够在一个线程函数中创建一个事件对象,然后观察它的状态假设是无信号的就该让该线程睡眠,这样改线程占用cpu的时间就比较少当一个线程执行初始化操作,然后通知另一个线程执行剩余操作是,事件使用的最多事件初始化为无信号状态,然后改线程完成他的初始化操作,他就将时间设置为有信号,这时,一直等待...

2019-03-08 17:53:28 105

原创 windows消息响应机制

消息队列:消息队列有两种,分为系统消息对垒和应用程序消息队列产生的消息首先由windows系统捕获放在系统消息队列中,再拷贝到对应的应用程序消息队列中系统为每一个应用程序维护一个消息队列消息循环:系统为每个应用程序维护一个消息循环消息循环会不断检测自身的消息队列,每有一个消息就用getmessage()取出消息DispatchMessage()把取出的消息分配给相应的窗...

2019-03-08 17:53:05 513

原创 信号和槽

信号草是用于对象之间通信的其他工具好通过回调实现这种通信回调是个函数指针,如果你希望一个处理函数通知你希望一个信号的参数类型必须与他的接受草的信号类型想匹配一个发射信号的类不用知道那个草药接受这个洗好qtde xinhaoca即可把一个洗好和一个草练级诶起来草会在正确的事件使用洗好可以使用任何类型任何数量的参数信号是一个public访问函数,可以自...

2019-03-08 17:52:27 97

原创 dlopen

编译时候要加入 -ldl (指定dl库)dlopen基本定义

2019-03-08 17:51:49 1385

原创 Linux下core文件

core文件的作用:核心文件(corefile),也称为核心转存(coredump),是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试当程序崩溃时,内核有可能把该程序当前内存映射到core文件中,方便程序员找到程序出现问题的地方..2.查看core文件 先生成core文件,gdb ...

2019-03-08 17:23:27 1333

原创 linux命令记录

查看一个.pc文件的内容:cat glib-2.0.pcLinux下常见的压缩包格式有5种:zip tar.gz tar.bz2 tar.xz tar.Z其中tar是种打包格式,gz和bz2等后缀才是指代压缩方式:gzip和bzip2filename.zip的解压:unzip filename.zipfilename.tar.gz的解压:tar -zx...

2019-03-07 10:40:45 82

原创 gtk

GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包一个功能强大、设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一。并且,GTK+也有Windows版本和Mac OS X版。1.`pkg-config --cflags --libs gtk+-2.0`的意思、作用 `` 倒引号符号不是我们的单引号,而是Es...

2019-03-06 14:46:46 123

原创 makefile

在gcc中,指定额外的库通过-lxxx的参数实现(L的小写),指定链接库位置采用-Lxxx的形式实现,如果头文件不是放到默认位置的话,需要-Ixxx来指定头文件搜索路径(i的大写)。如果用到了POSIX多线程的话,要指定-pthread选项-L //指定库文件搜索路径-I //指定搜索头文件的路径 LIBS = -lmytest #链接 libmytest.a LIBPATH...

2019-03-06 12:13:59 84

原创 YUV和RGB

一般的视频采集芯片输出的码流一般都是YUV数据流的形式,而从视频处理(例如H.264、MPEG视频编解码)的角度来说,也是在原始YUV码流进行编码和解析YUV是指亮度参量和色度参量分开表示的像素格式,这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大, 人眼对色度的敏感程度要低于对亮度的敏感程度YUV,分为三个分量,“Y”表示明亮度(Lumin...

2019-03-06 09:28:10 173

原创 strcpy

遇到0就停止拷贝,不安全

2019-03-05 15:46:01 125

原创 硬解码和软解码

1.硬解字面上理解就是用硬件解码。通过显卡的视频加速功能对高清视频进行解码。可以理解为有一个专门的电路板来进行视频的解码工作,是依靠GPU。 调用GPU的专门模块编码来解码,减少CPU运算。显卡核心GPU拥有独特的计算方法,解码效率非常高,这样不但能够减轻CPU的负担,还有着低功耗,发热少等特点。 但是,由于硬解码起步比较晚,软件和驱动对他的支持度很低,基本上硬解码内置什么杨的...

2019-03-04 16:31:18 3367

原创 sizeof()

sizeof(数组名):返回数组长度(所占的字节数,不是数组元素个数),而不是指向数组的指针的长度。sizeof(arr)计算的数组所占字节数,并非数组长度,数组长度=sizeof(arr)/sizeof(char)int arr[] = {1, 2, 3, 4, 7, 98, 0, 12, 35, 99, 14};sizeof(arr)/sizeof(arr[0])...

2019-03-04 14:14:29 99

原创 20190304 工作记录

1.map value可重复2. 运行时错误The value of ESP was not properly saved across a function call.This is usually a result of calling a function declaredwith one calling convention with a function pointer d...

2019-03-04 11:02:01 84

原创 程序运行堆栈

堆栈是个特殊的存储区,属于RAM空间的一部分 堆栈用于函数调用、中断切换时保护和恢复现场数据 ...

2019-02-27 19:28:00 1559

原创 qt和mfc

为windwos设计的一个用于开发图形用户界面的类库包装了win32的api qt可以运行在多个平台windwos macunixmfc是事件驱动的架构,杨总执行任何操作都必须是对投给特定的消息作出相应信息数以前xoa几,要分清这些兄啊、、消息是很困难的 qt的消息机制是建立在信号发送和草接受的基础上的这个机制是对象见建立联系的核心机制利用sigal...

2018-07-18 22:47:12 704

原创 面向对象

该技术是基于抽象和隐蔽原则来控制大型软件的复杂度所谓对象,指的是具有相同属性、服从相同规则的一系列事物的抽象,把具体的事物称为对象的实例 利用被封装的数据结果和一组对他进行操作的搓成来标识系统中的某个对象对象的变量可以得到很好的保护 继承是父类和子类之间共享变量和方法的机制子类自动继承父类中的变量和方法,并允许子类再增加新的内容 2.面向对象技术的优点1)通...

2018-07-17 17:05:15 75

原创 进程同步

为了使多个进程有条不紊的运行,系统中必须设置进程同步机制进程同步的主要任务是为多个进程的运行进行协调协调方式有两种1)进程互斥方式。这个是指诸进程在对临界区资源进行访问时,应采用互斥方式2)进程同步方式。这是指相互合作去完成共同任务的进程间,由同步机构对他们的执行次序加一协调    为了实现进程同步,系统中必须设置进程同步机制,最简单的用于实现进程互斥的机制是为每个临界资源...

2018-07-17 13:30:33 240

原创 线程的状态

线程从创建、运行到结束总是新建、就绪、运行、阻塞、死亡状态1.新建状态:当用new操作符创建一个线程时,此时程序还没开始运行线程的代码2.就绪状态:一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start()方法。当线程对象调用start方法即启动了线程,start(fangfa创建先生运行的系统资源,并调度线程运行run方法只有获得cpu时间才可以运行线程...

2018-07-17 13:01:49 67

原创 进程和线程

概念:线程是进程中执行运算的最小单位是进程中的一个实体,是被系统独立调度和分派的基本单位线程自己不拥有系统资源值拥有一点在运行中比不可少的资源但是他域同一进程的其他线程共享进程所拥有的全部资源,一个线程可以创建和撤销另一个线程同一进程中多个线程之间可以并发执行好处:1)易于调度2)提高并发性,通过线程可以方便有效的实现并发性,进程可以穿件多个线程执行同一程序的不...

2018-07-17 12:35:42 63

原创 TCP连接与断开

transmission control protocol  传输控制协议基于字节流的通信协议数据在传输前要建立连接,传输完毕要断开连接客户端在收发数据前要使用connnect函数和服务器建立连接建立连接的目的是保证ip地址、端口等正确无误,为数据的传输开辟通道tcp建立连接时腰传输三个数据包,俗称三次握手1)当客户端调用connect函数后,tcp协议会组建一个数据包,并...

2018-07-17 10:36:24 1355

原创 虚继承

与虚函数无关虚继承是解决c++多重继承问题的一种手段,从不同途径继承来的同一同一基类,会在子类中存在多份拷贝,为了解决从不同途径继承来的同名的数据成员   在内存中有不同的拷贝  造成数据不一致的问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也之后一个映射,不仅解决了二义性的问题也节省了内存,class a : virtual public...

2018-07-12 16:44:32 116

原创 内存字节对齐

    为了提高效率,计算机从内存中取数据是按照一个固定长度的他在内存中存放的位置按4字节对齐内存对齐是会浪费一些空间的,但是这种空间上的浪费却可以减少取数的时间以空间换时间结构体内成员按照自身长队自对齐    自对齐指的是该成员的起始位置的内存地址必须是自身长度的整数倍,、如int 只能以0 4 8 这类的地址开始结构体的总大小为结构体的有效对期指的整数倍对齐跟数据在内存中的位置有关。需要自己对...

2018-07-12 14:54:06 162

原创 影响类大小的因素

:类的实例化就是为每个实例在内存中分配一块地址;每个类在内存中都有唯一的标识,因此空类被实例化时,编译器会隐含地为其添加一个字节,以作区分当类中含有虚函数时,会有一个指向虚表的指针系统为类指针分配大小为4字节。...

2018-07-12 13:58:29 906

原创 异常处理

    大规模应用程序往往具有下列特殊要求    异常处理--1.更严格的正常运转时间以及更简装的错误检测和错误处理        错误处理经常必须跨越独立开发的多个子系统进行    命名空间--2.能够用各种库构造程序    多重继承--3.更够处理更复杂的应用概念异常处理    使用异常梳理,程序中独立开发的各部分能够就程序执行期间出现的问题互相通信程序的一个部分能够检测出本部分无法解决的问题...

2018-07-12 13:47:57 95

原创 类模板成员函数的实例化

    与其他函数模板不同的是,在实例化类模板成员函数的进修编译器不执行模板实参推断,相反,类模板成员函数的模板形参由调用该函数的对象类型确定,调用模板成员函数比调用类似函数模板更灵活。用模板形参定义的函数形参的实参允许进行常规转换。:何时实例化类和成员    类模板的成员函数只有为程序所用才进行实例化,用于实例化模板的类型只需要满足实际使用的操作的要求    定义模板类型对象时,该定义导致实例化...

2018-07-12 10:46:55 1536 1

原创 线程

定义一个线程,需要的数据并不多。线程在 “任何时刻下的状态”呗定义在进程的某块内存中、以及cpu中可涂改拍纸片上。其他的重要数据,如变量以及应用程序调用的堆栈,存储在进程总那些可悲其他线程共享的内存中。    线程廉价,启动较快、退出较快,对系统资源的冲击比较小、线程彼此分享了大部分核心对象的拥有权。    如果使用多重进程,最困难虽然,为每个请求产生一个新的进程负担非常惊人必须载入服务器软件的一...

2018-07-12 09:23:27 81

原创 Runtime Library

    运行时库,是程序运行时所需的库文件,通常运行时库是以lib或dll形式提供的如果你安装了VS2010,在安装目录下的VC\crt\src下(如我的目录是C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src)有运行时库(CRT)的源代码按照以前的实现方式每一个程序都要拷贝一份标准库的实现到程序中这样同一时刻内存中可能有许...

2018-07-12 08:36:45 1665

原创 windows资源管理

内核对象、GDI对象、user对象这些对象使用 句柄 来标识,通过操作这些句柄就使用不同的资源对象和堆内存一样,程序员也需要管理这些对象资源,以免造成资源浪费    句柄(  handle)是windows用来标识被应用程序所建立或使用的对象的唯一证书,windows使用各种各样的句柄标识诸如应用程序实例、窗口、控制、位图、GDI对象。‘句柄实际上是一种指向某种资源的指针,单与指针又有所不同:指针...

2018-07-12 08:15:26 270

原创 虚拟内存

虚拟内存一般用在内存不足的情况下,系统自动调用硬盘空间用来暂时替代不够的内存工作,由于虚拟内存用的是硬盘空间硬盘的读写速度要远远低于真正的内存。所以设置过大的虚拟内存会影响计算机的速度。虚拟内存最好设置成不经常用的磁盘分区上,不经常用的分区碎片少,磁头读写顺畅,相对较快简单地说,虚拟内存就是在C盘划一块地用来补充主存(内存)的容量,以达到加快主存速度、最终提高电脑整机速度的目的    它使得应用程...

2018-07-11 15:53:44 290

原创 内存

内存是存储单元的集合,每个存储单元都有一个唯一的物理地址。这里用统 单元,而不是用字节或字,是因为不同机器每个可编址的位置的位数不同。目前大多数计算机都是字节可编址的。可编址行: 内存中每个可编址位置存储的位数。...

2018-07-11 14:37:56 152

原创 进程地址空间

内存一般都是按字节寻址的,意思就是一个地址指向的内存单元有一个字节,即8位

2018-07-11 14:31:07 176

原创 模板

编译器用用户提供的实际特定类型代替Type,重新编写Queue类,在这个例子中,编译器将实例化三个Queue类    可以给模板形参赋予的唯一含义是   区别形参类型是  类型形参  或  非类型形参。如果是类型形参, 我们就知道该形参表示未知类型,如果是非类型形参,我们就知道他是一个未知值。、、、、模板形参的名字可以在声明为模板形参之后知道模板声明或定义的末尾处使用。    在调用函数时,非类型...

2018-07-11 10:06:45 83

原创 纯虚函数

    class Disc_item : public Item_base{public: double net_price( std::size_t ) const = 0;};将函数定义为春旭能够说明,该函数为后代类型提供了可以覆盖的接口。但是这个类中的版本绝不会调用,用户不能创建该类类型的对象。...

2018-07-09 16:06:42 72

原创 名字查找在编译时发生

    对象、引用或指针的静态类型决定了对象能够完成的行为。要获得动态绑定,必须通过基类的引用或指针调用虚成员。当我们这样做时编译器将在基类中查找函数。假定找到了名字,编译器就检查是参数是否与形参匹配。    现在可以理解虚函数为什么必须在基类和派生类中拥有同一原型了。如果基类成员与派生类成员接收的实参不同,就没办法通过基类类型的引用或者指针调用派生类的函数考虑如下    class D1: pu...

2018-07-09 15:59:50 180

空空如也

空空如也

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

TA关注的人

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