基础部分
文章平均质量分 79
manchestermi
文章基本转载,为了方便学习
展开
-
VIM命令及添加快捷键
vim工具是vi的升级版本,功能比后者要强大,但是那么多的命令是不是都要全部记得住呢?答案是否定的,只要记住平时用得最多的几个就足够。编辑代码不外乎不就是删除,复制,定位,查找,恢复,替换等等,因些认为只要记住下面的十来个应该就足够了,如果真要把vim的全部快捷方式都背下来,相信还是相当有难度的,毕竟功能实在是太强大了。下面列几个使用频率最高的:1. 快速复制n行: $ nYY2转载 2015-11-09 19:59:56 · 640 阅读 · 0 评论 -
Linux进程间通信--共享内存与信号量
进程可以直接读写内存,不需要任何数据的复制。为了在多个进程间交换信息,内核专门留出一块内存区,内存区可以由需要访问的进程将其映射到自己的私有地址空间,进程直接读写这一内存区,而不需要进行数据的复制,提高了效率。由于多个进程共享内存,需要依靠同步机制如互斥锁和信号量。共享内存的实现分为三个步骤:1. 创建共享内存,shmget()shmget(创建或打开共享内存)转载 2015-11-30 23:14:55 · 972 阅读 · 0 评论 -
TCP三此握手与四次挥手
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:SYN : 发送连接请求转载 2015-12-15 09:57:23 · 262 阅读 · 0 评论 -
C++ vector用法
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=vec.begin();it转载 2015-12-13 16:07:23 · 239 阅读 · 0 评论 -
C++虚函数多态
由虚函数实现的动态多态性就是: 同一类族中不同类的对象,对同一函数调用作出不同的响应。虚函数的使用方法是:(1)在基类用virtual声明成员函数为虚函数。这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地被调用。在类外定义虚函数时,不必再加virtual。(2)在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同,并根据派生类的需要重原创 2015-12-12 09:27:19 · 271 阅读 · 0 评论 -
C---格式化日期函数
结构tm的定义为struct tm{int tm_sec;int tm_min;int tm_hour;int tm_mday;int tm_mon;int tm_year;int tm_wday;int tm_yday;int tm_isdst;};int tm_sec 代表目前秒数,正常范围为0-59,但允许至61秒int tm_min转载 2015-11-19 15:59:23 · 373 阅读 · 0 评论 -
内核链表的分析与使用
链表(循环双向链表)是Linux内核中最简单、最常用的一种数据结构。No.主要 函数说明1.list_add在 head 之后追加一个节点2.list_add_tail在 head 之前追加一个节点, 也就是在末尾追加一个节点3.list_del删除一个节点, 并将这个节点的ne原创 2015-11-18 14:51:47 · 499 阅读 · 0 评论 -
C++中的类所占内存空间总结
成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,table里面记录的各个成员函数的地址(当然不同的编译可能略有不同的实现)。所以我们访问成员函数是间接获得地址的。所以这样也就转载 2015-12-10 17:58:56 · 274 阅读 · 0 评论 -
C --struct union内存分配
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。也就是说Big-endian模式符合人的习惯,而Little-endian更加方便计算机操作。例如,16bit宽的数0x1234在Little-endian模式CPU内转载 2015-12-10 18:09:29 · 851 阅读 · 0 评论 -
srand与rand随机数生成
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。rand(产生随机数)表头文件: #include 定义函数 :int rand(void) 函数说明 :因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范转载 2015-12-09 19:49:47 · 424 阅读 · 0 评论 -
文件结尾判断feof , EOF
查看 stdio.h 可以看到如下定义: #define EOF (-1) #define _IOEOF 0x0010 #define feof(_stream) ((_stream)->_flag & _IOEOF) 由此可以看出,这两种方式的原理是不同的。 在这里先说下EOF和feof()这个两个宏定义,在我们学的课本中有这样的描述。EOF是转载 2015-11-11 19:00:38 · 2136 阅读 · 0 评论 -
结构体字节对齐
结构体字节对齐 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是简单地顺序排列,这就是内存对齐。 内存对齐的原因:转载 2016-04-01 17:31:24 · 449 阅读 · 0 评论