自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

snowman的博客

努力每天学习新知识.

  • 博客(40)
  • 收藏
  • 关注

转载 STL_string用法总结

 转载至:https://www.cnblogs.com/jasonlixuetao/p/5906786.html1:string对象的定义和初始化以及读写string s1;      默认构造函数,s1为空串string s2(s1);   将s2初始化为s1的一个副本string s3("valuee");   将s3初始化一个字符串面值副本string s4(n,'...

2019-02-21 21:35:19 190

转载 函数调用--函数栈

转载保存:https://www.cnblogs.com/rain-lei/p/3622057.html

2019-01-22 14:38:47 173

转载 可变参数的宏定义

转载:http://www.cnblogs.com/caosiyang/printf()和fprintf()这些输出函数的参数是可变的,在调试程序时,你可能希望定义自己的参数可变的输出函数,那么可变参数宏会是一个选择。C99中规定宏可以像函数一样带有可变参数,比如#define LOG(format, ...) fprintf(stdout, format, __VA_ARGS__...

2019-01-17 21:04:54 1190 1

原创 ubuntu16.04交叉编译vlc2.2.4过程整理

详细过程参考这个:https://blog.csdn.net/u012534831/article/details/83305001采坑记录:1.configure的时候,如果报什么模块或什么包找不到../extras/package/win32/configure.sh --host=i686-w64-mingw32 --build=x86_64-pc-linux-gnu --dis...

2018-12-19 17:40:31 862

转载 linux c sscanf()函数详解

https://www.cnblogs.com/listenerln/p/9186311.html

2018-12-12 20:18:28 767

转载 PAE详解

https://www.cnblogs.com/ck1020/p/6078214.html

2018-11-20 13:51:15 2026

转载 STL中stack的实现为什么用deque而不用vector.

为什么大多数STL的stack的实现中,对于内部的容器默认选择deque容器?而不是vector?      STL中,stack对内部使用容器的函数调用主要有:push_back,back,pop_back等,也就是顺序容器都满足要求(包括vector,deque,list)。很多人应该和我一样,在STL之前看到的stack实现都是以动态数组来(甚至静态数组)实现为主,也就是接近于使用vect...

2018-11-19 16:37:47 2197 1

转载 vlc 播放视频流过程分析

vlc 播放视频流过程分析https://www.cnblogs.com/sunminmin/p/4479893.htmlvlc架构剖析http://www.cnblogs.com/TheGrandDesign/articles/2344118.html

2018-11-17 14:50:40 1466

原创 【剑指offer】顺时针打印矩阵,C++实现

博主写的很好,备忘https://www.cnblogs.com/wanglei5205/p/8617424.html

2018-11-16 20:58:19 387

原创 ubuntu12.04下编译vlc2.0.6源码全过程

参考:https://www.cnblogs.com/oloroso/p/4595136.html      :https://blog.csdn.net/tong5956/article/details/52386583?utm_source=itdadao&utm_medium=referral环境:ubuntu12.04   vlc版本:2.0.6wget ftp://f...

2018-11-14 16:40:23 299

原创 int指针指向char数组后的内存分配

char a[]={1, 2, 3, 4, 5, 6, 7, 8, 9};char *q = a;cout<<q[0]<<' '<<q[1]<<endl;short *w = (short*)a;cout<<w[0]<<' '<<w[1]<<endl;int* p=(i

2018-08-11 13:25:50 1035

原创 c/c++面试秘籍之查找两个字符串中最大公串

#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>using namespace std;char *commonstring(char *str1, char *str2){ char *shortstr; char *longs...

2018-08-08 15:01:44 603

转载 如何在c语言中源文件调用另一个源文件的函数

 在源文件A1.c中调用A2.c 中的函数有两种方法:  1.在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:在A2.c中:有函数void A2(){...};在A1.c中:在文件前头增加一行:void A2();就可以了    2.把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A...

2018-08-06 14:01:20 18576 2

原创 memcpy

#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;void memcpy(char *dest, char *src ,int size){ char *tmpdest; char *tmpsrc; tmpdest = dest; tmps...

2018-07-17 14:44:45 136

原创 c/c++ 不使用库函数将整数转换为字符串

此题关键点有三:1,需要先对输入的数取绝对值,以防求余的时候出错2.判断输入数的正负,若是负数需要加上'-'.3.字符串的最后需要加上'\0'#include <iostream>#include <stdio.h>using namespace std;void int2str( int n , char *str){ int tmp; char buf[1...

2018-07-13 11:03:15 1412

原创 虚拟机,开发板,pc三者互ping

    之前按韦老师的配置是需要路由器的,由于实验室没有路由器,所以直接把开发板通过网线接pc,开发板,pc,虚拟机三者都设为ip在同一个网段下,pc端的要设置有线网卡的ip.然后虚拟机的桥接模式edit->virtual network edit->vmnet0 下面bridge to  由韦老师设置的自动改为桥接到有线网卡,这样三者就能互ping了.这样设置之后可以三者互p...

2018-07-10 11:10:56 293

转载 管道和消息队列有什么不同

转载自:http://bbs.chinaunix.net/viewthread.php?tid=265266作者:beginner-bj请问管道和消息队列有什么不同管道通信(PIPE)管道通信方式的中间介质是文件,通常称这种文件为管道文件。两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程。写进程通过写端(发送端)往管道文件中写入信息;读进程通过读端(接收端)从管道文件中读取信息...

2018-06-28 21:01:52 4323

转载 pthread_join的使用

在Linux中,新建的线程并不是在原先的进程中,而是系统通过一个系统调用clone()。该系统copy了一个和原先进程完全一样的进程,并在这个进程中执行线程函数。不过这个copy过程和fork不一样。 copy后的进程和原先的进程共享了所有的变量,运行环境。这样,原先进程中的变量变动在copy后的进程中便能体现出来那么pthread_join函数有什么用呢???pthread_join使一个线程等...

2018-06-25 12:05:56 2058

转载 tslib出错集合

因为某些原因,又搞了下tslib和qt的移植,骤然发现还是遇到很多问题,以前搞得时候有些问题也莫名其妙,现在就总结下这次遇到的问题,方便以后解决。1.tslib 中的segmentation faultproblem:所有的tslib测试程序 一运行 都是直接提示 segmentation faultanswer:原来是自己的ts.conf文件去掉第一行的注释的时候 忘记删除空格,删除空格就好了。...

2018-06-15 15:48:24 1666

转载 编程规范

1.if、else、else if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{ }。  说明:这样可以防止书写失误,也易于阅读。 正例: if (varible1 < varible2){    varible1 = varible2;} 反例:下面的代码执行语句紧跟if的条件之后,而且没有加{},违反规则。   if (varible1 &lt...

2018-06-14 10:12:03 158

转载 深入理解C语言函数指针

示例1:void myFun(int x); //声明也可写成:void myFun( int );int main(){ myFun(100);//一般的函数调用 return 0;}void myFun(int x){ printf("myFun: %d\n",x);}我们一开始只是从功能上或者说从数学意义上理解myFun这个函数,知道myFun函数名...

2018-06-06 15:34:06 680

转载 通用的makefile讲解

makefile讲解makefile基础知识1、赋值符号的区别:  =  是最基本的赋值,用到了之后才赋值,不能在变量后追加内容  :=  是覆盖之前的值,立即赋值,可以在变量后追加内容  ?= 是如果没有被赋值过就赋予等号后面的值  += 是添加等号后面的值2、自动变量:  $<    第一个依赖文件的名称  $?    所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚...

2018-06-04 20:10:37 652

转载 makefile '@' '$' '$$' '-' '-n ' 使用小结

编译代码时,会进程接触makefile,会涉及到一些符号,由于不明白有些意思经常出现问题,在此归纳一下。'@'  符号的使用      通常makefile会将其执行的命令行在执行前输出到屏幕上。如果将‘@’添加到命令行前,这个命令将不被make回显出来。      例如:@echo --compiling module----;  // 屏幕输出 --compiling module----  ...

2018-06-04 19:50:32 26842

原创 GCC编译为什么不用包含头文件

编译结果:思考1:为什么a中没有包含b的头文件,却能调用b中的函数?因为a.c和b.c用gcc一起联合编译,且只有一个main函数,在编译阶段,a会自动去b中寻找函数体.思考2:将A的定义由a.h中改为在b.c中定义,编译报错说A未定义?因为预处理在编译之前,在预处理的时候,会展开#替换掉函数中的#等语句,这时候会检查出A为定义....

2018-06-04 14:18:10 4184

转载 svgalib动态库的问题 error while loading shared libraries

韦东山第三期编译使用svgalib的时候   ./svgatest: error while loading shared libraries: libvga.so.1: cannot open shared object file: No such file or directoryls /usr/local/lib/发现libvga.so.1存在sudo vim /etc/ld.so.conf...

2018-06-03 16:33:00 171

转载 segmentation fault

segmentation fault 即段错误,一般都是出现了非法的地址写法操作导致的。常见的几种情况:1、空指针访问。如果指针为空(NULL), 那么对空指针的读写操作都会导致segmentation fault。2、指针指向非法区域后的写操作。C语言的指针指向了非法区域,然后对其写入,会带来不可预知后果,最严重的就是程序崩溃,此时也是segmentation fault。3、常量空间破坏。比如...

2018-05-13 15:44:07 3232

转载 数据类型对应字节数(32位,64位 int 占字节数)

一、程序运行平台       不同的平台上对不同数据类型分配的字节数是不同的。       个人对平台的理解是CPU+OS+Compiler,是因为:        1、64位机器也可以装32位系统(x64装XP);        2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的);        3、即使是32位的编译器也可以弄出64位的integer来(...

2018-05-07 17:15:29 2837 1

转载 c++中this指针备忘录

转载于:http://ms.csdn.net/geek/190871我们知道在如下例子中。class Test{public: Fun(int a) { //doSomething }private: int a;};Fun(int a)是Test的非静态成员函数,所以编译器在编译期间改写该函数时,会自动将一个名为this的指针当作为第一个参数传入。类似于:Fun(Test* ...

2018-04-17 19:44:02 106

原创 c语言数组

1.数组名的值是指针常量(不可被修改),指向数组第一个元素的地址,(在程序完成链接以后,内存中的数据是固定的).只有sizeof和&的情况下数组名不是常量.去一个数组名的地址产生的是一个指向数组的指针。2.除了优先级以外,下标引用和间接访问完全相同(间接访问效率>=下标引用)3.数组和指针的区别:声明一个数组的时候,编译器会为数组保留元素数量的内存空间,数组名是常量....

2018-04-07 20:07:28 129

原创 c语言函数

1.c函数的所有参数均以"传值调用"的方式进行传递,这意味着函数将获得参数值的一份拷贝.这样,函数就能放心的修改这个值,而不必担心会修改实际传递给他的参数.2.值传递获得的是参数的拷贝,不能改变参数的原始值.指针传递的是指针的拷贝,可以通过指针的间接访问到原始值而修改.3.递归:阅读递归函数最容易的方法并不是纠缠它的执行过程,而是相信递归函数会顺利的完成它的任务.程序员需要做的是确保每个步骤正确无...

2018-04-04 13:25:28 118

原创 c指针基础

1.&和*为互逆操作2.*100 = 25,这样的操作是非法的,因为字面值100是整形,而间接访问操作只能作用域指针类型.如果一定要这样操作  *(int *)100 = 25,强制转换之后才合法.3.++和*为同级运算符,++和*都是从右向左结合,*a++这样的操作,会先拷贝出a在对a进行+1,然后对拷贝出来的a进行* 操作.*++p是先对p进行+1再指向p+1的地方.4.指针的算术运算...

2018-04-02 21:53:54 229

原创 jz2440 tftp下载ip设置的问题

开发板通过网线连接主机,主机接wifi.首先保证开发板,主机,Ubuntu三者处于同一个网段.手动设置本地连接静态ip.开发板ping的ip实际上式本地连接的静态ip.开发板的serverip 也为本地连接的静态ip开发板的ipaddr需要设置为和本地ip同一个网段....

2018-04-02 20:45:08 207

原创 static的用途

static的用途:让一个变量长期有效,而不管其是在什么地方被申明。比如:          int fun1()          {              static int s_value = 0;              ....          }         那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下...

2018-04-01 15:26:37 106

原创 c语言的作用域和存储域

1.如果内层代码块有一个标识符的名字和外层代码块的一个标识符同名,内层的那个标识符就将隐藏外层的标识符--外层的那个标识符无法再内层代码块中通过名字访问.2.任何在所有代码块之外的声明的标识都具有文件作用域,它标识这些标识符从他们的声明之处直到它所在的源文件结尾处都可以访问,(函数名也具有文件作用域,全局变量也具有).3.链接属性:internal(在同一个源文件中都表示同一个实体),extern...

2018-04-01 15:24:14 861

原创 关于arm中的字节对齐

大多数计算机使用字节作为最小的可寻址存储器单元,一个地址对应一个字节的数据.对于32位arm,取指是以4字节为单元取的,所以需要以4字节对齐.

2018-03-31 13:25:46 2649

原创 linux内核之扇区,页,块的理解

页:操作系统必须以页为单位管理内存.块:文件系统最小寻址单元,又称为文件块和io块扇区:块设备中最小寻址单元是扇区,扇区这一术语在内核中重要是因为所有设备的io必须以扇区为单位操作其中,一个页可以有多个块,一个块有多个扇区缓冲区:磁盘块在内存中的表示...

2018-03-30 14:23:24 1848

转载 物理内存 虚拟内存 和进程地址空间

1. 物理内存:物理内存指的是插在计算机主板内存槽上的实际物理内存,CPU可以直接进行寻址;物理内存的容量是固定的,但是寻址空间却取决于cpu地址线条数,如32位机,则寻址空间为2^32=4G,即最大支持4G的寻址空间,即使我们插入了32G容量的内存条,我们也只能拥有4G的物理内存; 2. 虚拟内存:进程执行需要将代码和数据放在内存中,但是物理内存是有限的,当进程比较多的时候,容易造成内存耗尽,而...

2018-03-27 15:49:36 489

转载 进程地址空间

用户空间中进程的内存,由进程可寻址的虚拟内存组成,一般为32位或64位的平坦地址空间,但不是所有虚拟地址都可以访问的,其中可以被访问的合法地址空间称为内存区域,内存区域有对进程可读、可写、可执行属性,包括代码段、数据段、bss段、进程用户空间栈、共享库、内存映射文件、共享内存段、匿名内存映射,当一个进程的地址空间与另一个进程的地址空间有相同的内存地址,称为线程(是否共享地址空间是进程和线程的唯一区...

2018-03-27 15:48:45 478

转载 Linux下的tar压缩解压缩命令详解

tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必须的-f: 使用档案名字,切记...

2018-03-16 20:19:44 91

转载 (深入理解计算机系统) bss段,data段、text段、堆(heap)和栈

(深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack) bss段:  bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。  bss是英文Block Started by Symbol的简称。  bss段属于静态内存分配。   data段:  数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内...

2018-03-13 19:07:38 160

空空如也

空空如也

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

TA关注的人

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