
c语言
文章平均质量分 75
LC900730
这个作者很懒,什么都没留下…
展开
-
ext2文件系统
1.元数据:metadata保存的是文件名称,文件位置等相关信息,这种信息通常只是为了查找数据块在哪个位置和大小设定的。在ext2上,元数据变得复杂了,于是就有了inode,超级块等概念。2.BLOCK:块磁盘是由一个一个区连接起来,每个区是512字节。设计者把连续若干个区连成一组,抽象出block的概念。通常在设计block的时候,8个区连成一组,即一个block就是4KB;3.Boot Bloc原创 2017-05-10 09:41:21 · 600 阅读 · 0 评论 -
数据结构之图
图图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为在G(V,E),其中G表示一个图,V是G中顶点的集合,E是图G中边的集合;对于图:线性表中我们需要把数据元素叫元素,树中将元素叫做结点,在图中数据元素,我们称之为顶点(Vertex)线性表中可以没有数据元素,称为空表;树中可以没有结点,叫做空树;在 图结构中,不允许没有顶点。在定义中,若V是顶点的集合,则强调了顶点集合V的有穷非空线性原创 2017-05-10 09:32:27 · 350 阅读 · 0 评论 -
C语言中结构体
struct1.结构体定义的时候不能赋初值;struct ours{ int num=100; //编译报错 int num; char str[100];}2.结构体中字符串赋值方式void main(){ struct ours o1={100,"hello china"}; struct ours o2=01; //结构体整体直接赋值的时候,原创 2017-05-05 21:17:29 · 427 阅读 · 0 评论 -
InnoDB存储引擎读书笔记
./mysql –help| grep my.cnf 查看mysql实例启动时候,它会在哪些地方查找配置文件 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 配置文件中datadir该参数指定了数据库所在的路径;数据库:从概念上来讲:数据库是文件的集合,是依照某种数据模型组织起来并且存放在二级存储中的数据集原创 2017-05-18 21:42:42 · 442 阅读 · 0 评论 -
nginx启动
1.启动执行/usr/local/nginx/sbin/nginx,默认读取/usr/local/nginx/conf/nginx.conf(实际上在没有显式指定conf,会使用–conf-path=PATH指定的nginx.conf)2.指定配置文件启动/usr/local/nginx/sbin/nginx -c /tmp/nginx.conf3.指定安装目录的启动方式/usr/local原创 2017-05-30 21:25:12 · 303 阅读 · 0 评论 -
顺序容器
vector:可变大小数组; deque:双端队列 list:双向链表 forward_list:单向链表 array:固定大小数组 string:与vector相似的容器,但专门用于保存字符。 除了固定大小的array外,其他容器都提供高效、灵活的内存管理。迭代器与容器类似,迭代器有着公共的接口; 迭代器范围概念是标准库的基础; 一个迭代器范围由一对迭代器表示,两个迭代器分表指向同原创 2017-06-05 17:38:03 · 272 阅读 · 0 评论 -
表空间
表空间可以看做是InnoDB存储引擎逻辑结构的最高层,所以数据都是放在表空间中。默认情况下InnoDB存储引擎有一个共享表空间ibdata1,所以的数据都是放在这个表空间中。如果启用了innodb_file_per_table,那么每张表内的数据可以单独放到一个表空间内。 开启了innodb_file_per_table后,每张表的表空间内存放的只是数据、索引和插入缓冲,其他类型的数据,如Undo原创 2017-05-20 10:35:42 · 424 阅读 · 0 评论 -
C++游戏
Windows下: API:win32API GDI GID+ SDK: MFC C++能做什么: 桌面应用程序; 游戏;创建窗口1.设计一个窗口类; WNDCLASSEXW //标准窗口类 WNDCLASSEXW wndClass={0}; wnd.style=CS_HREDRAW|CS_VREDRAW|CS_ 2.注册一个窗口类; 3.创建一个窗口; 4.显示窗口和更新窗原创 2017-05-19 21:48:39 · 1118 阅读 · 0 评论 -
小知识点
printf当printf接收到字符串时候,第一件事情把字符串复制到一个char数组(缓冲区)里,当这个数组遇到特定字符,比如’\n’字符,回车或者装满等,就会把字符写到屏幕终端; 而当我们把printf重定向到文件时候,如果printf函数遇到’\n’字符,并不会立即把字符写到文件里,这是printf函数将字符重定向到屏幕和文件的重要区别; 当./myfork>tmp这个进程执行到fork的时原创 2017-05-13 19:51:34 · 339 阅读 · 0 评论 -
位图
在游戏中,角色位图的位置是不断变化的,所以设备上下文中合成位图的内容也是不断变化的。为了实现游戏画面的刷新,通常是利用缓存设备环境来保存下一帧的合成位图对象,下一帧的合成位图对象是根据角色位图的实时位置和状态重新渲染后的结果。位图绘制1.加载位图,从文件中加载位图对象2.建立兼容DC,建立一个与窗口设备环境DC兼容的内存设备环境DC3.选用位图对象,内存DC使用步骤1中所建立的位图对象4.进行原创 2017-05-21 18:19:50 · 604 阅读 · 0 评论 -
图像
图形是由计算机绘制而成的,图像是人为的外部设备(如照相机)所捕捉到的外部景象。 比如绘图软件等画的就是图形,而照相机拍的照片就是图像。图像的存储图形文件分为两种,位图和矢量图; 位图中,图像是由许多的屏幕小点(像素)组成,这些小点对应显存中的位,而就是这些位决定了像素的属性,如像素的颜色、灰度、明暗对比度等。 当一个像素所占的位数多,它表示的颜色就更多,更丰富,从整体上看,图像的色彩就更艳丽,原创 2017-05-21 23:25:37 · 1838 阅读 · 0 评论 -
引用
引用引用是一种声明关系,声明时候必须初始化,引用不开辟空间;int a=50;int &ra=a; //ra是a的引用;sizeof(a);sizeof(ra);赋值int b200;ra=b; //赋值int &ra=b; //重声明,错误可对引用,再次引用,引用的引用再次引用…多次引用的结果是某一变量具有多个别名; &前面有类型,都是引用,其他情况都是取地原创 2017-05-12 19:11:59 · 549 阅读 · 0 评论 -
数据结构初步
数据结构逻辑结构线性结构:线性表,栈,队列,串,数组非线性结构:树结构,图结构物理存储结构顺序结构链式结构索引结构散列结构树节点拥有的子树数目称为节点的度; 度为0则是叶子节点或者终端节点; 树的度是树内各节点的度的最大值;结点的层次:根为第一层,根的孩子为第二层;节点的最大层次称为树的深度或者高度树的存储双亲表示法:假设以一组连续空间存储树的节点,同时在每个节点中,附设一个指原创 2017-05-08 21:24:10 · 397 阅读 · 0 评论 -
窗口过程函数
窗口过程函数窗口过程函数,主要用于处理发送给窗口的信息。一般的Windows应用程序的主要代码部分就集中在窗口过程函数中。而对于游戏程序而言,在窗口过程中是很少去写大量代码的。LRESULT CALLBACK WinProc(_In_ HWND hwnd,_In_ UINT Msg,_In_ WPARAM wPAram,_In_ LPARAM lParam);窗口过程函数的名字可以随便取,原创 2017-05-22 18:47:27 · 1395 阅读 · 0 评论 -
C++Primer变量
变量初始化作为C++11新标准的一部分,用花括号来初始化变量,还有一种方式是列表初始化。现在无论是初始化对象还是某些时候为对象赋新值,都可以使用这样一组由花括号括起来的初始值。 当使用内置类型的变量时,这种初始化形式有一个重要特点。如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错 long double ld=3.1415926536; int a{ld},b={ld}; i原创 2017-05-23 14:44:54 · 277 阅读 · 0 评论 -
FFmpeg
视音频基础格式封装格式:(mp4,RMVB,TS,FLV,AVI):视频码流和音频码流存储在一个文件中;封装格式又称为容器;MPEG-TS:不包含文件头,数据大小固定的TS Packet构成;FLV:包含文件头,数据由大小不固定的Tag构成(文件头丢了视频就废了);视频编码数据:(H.264 VC-1,MPEG2)将视频像素数据(RGB,YUV)压缩成为视频码流,从而降低视频数据量H.26原创 2017-05-12 17:44:31 · 632 阅读 · 0 评论 -
指针与数组
数组指针与函数指针typedeftypedef char (*PTR_TO_ARR)[30]; 表示PTR_TO_ARR是类型int *4的别名,它是一个二维数组指针类型;接着可以使用PTR_TO_ARR定义二维数组指针; PTR_TO_ARR p1,p2; 按照类似写法,可以为函数指针定义别名; typedef int (*PTR_TO_FUNC)(int,int);typedef cha原创 2017-05-04 22:18:39 · 364 阅读 · 0 评论 -
nginx
request:在nginx中我们指的是http请求,具体到nginx的数据结构是ngx_http_request;ngx_http_request_t是对一个http请求的封装;我们知道一个http请求包含请求行,请求头,请求体,响应行,响应头,响应体。 http请求是典型的请求-响应类型的网络协议,而http是文件协议。所以我们在分析请求行与请求头,以及响应头和响应行,往往是一行一行进行处理。原创 2017-05-12 21:16:35 · 273 阅读 · 0 评论 -
数据结构草稿
二叉排序树二叉排序树:也称二叉查找树,要么是一棵空树,要么是一棵具有如下特征的非空树; 1).若左子树为空,则左子树上所有节点关键字均小于根节点关键字; 2).若右子树为空,则右子树上所有节点关键字均大于根节点关键字; 3).左、右子树也分别是一棵二叉排序树; 因此:二叉排序树是一个递归的数据结构,可以方便调用递归算法对二叉排序树进行各种运算。 对二叉排序树进行中序遍历,可以得到一个递增的原创 2017-05-13 18:38:51 · 264 阅读 · 0 评论 -
inline函数
宏函数:\#define SQR(i) ((i)*(i))代码内嵌,避免了函数的调用; 缺点:容易产生歧义;容易使得text段体积增大;编译期间每个代码段复制一份; 宏就是替换,不会进行类型检查int sqr(int i){ return i*i;}缺点:函数调用的压栈和出栈开销;inlineinline int sqr(int i){ return i*i;}优点:避免调用原创 2017-05-13 19:35:26 · 256 阅读 · 0 评论 -
STL
Vector标准库类型vector表示对象的集合,其中所有对象类型都相同。集合中的每个对象都有一个与之对应的索引,索引用于访问对象。因为vector“容纳着其他对象”,所以它也常被称作容器。#include<vector>using std::vector;vector是一个类模板; 模板本身不是类或者函数,它可以将模板看做为编译器生成类或函数编写的一份说明。编译器根据模板创建类或函数的过程称为原创 2017-05-23 15:19:36 · 289 阅读 · 0 评论 -
typedef
typedef:为已经存在的类型取别名typedef :编译时候处理,为已有类型取别名。不能用于定义变量,仅仅适用于类型 define:预编译时候处理,简单字符替换typedef作用为特定类型指定了一个同义字:如typedef int Num[100];(NUM是int [100]同义词)typedef void (*go)(); //go是void (*)()同义词只是为已经存在的类型原创 2017-05-07 10:21:14 · 777 阅读 · 0 评论 -
二进制与文本
1.文本文件在文本文件中,数据是以字符形式呈现的,每个字符占用一个字节,而字节在计算机中是以ASCII码来识别;在村村文本时候需要先将ASCII码值来转换为二进制的形式来存储; 如在内存中将整数123以文本形式来存放,如图‘1’(49) ‘2’(50) ‘3’(51) 00110001 00110010 00101110 由于文本形式存储的是以字符形式原创 2017-05-07 10:31:15 · 1021 阅读 · 0 评论 -
数组作为函数参数
一维数组和多维数组都可以作为函数参数int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int b[]={1,2,3,4,5};printf("%d\n",sizeof(*(&a)));//48(容易产生的误区的:二维数组名其实是个行指针,那么*(&a)取到的是这一行,那么sizeof(*(&a)))是16,这是错误的。只要&a就取到的是整个数组这个对象printf原创 2017-05-08 09:59:25 · 439 阅读 · 0 评论