学习
wenzheng101
这个作者很懒,什么都没留下…
展开
-
堆栈的详细解释
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放转载 2013-10-12 10:12:08 · 2717 阅读 · 0 评论 -
gdb调试
当产生core文件时,我们经常要利用gdb对core文件进行分析调试,下面是我总结的一些调试命令:1、调试core#gdb 进程名 core.进程名2、查看堆栈#bt3、查看线程运行状态# i thread4、查看某个线程# t 第几个线程5、查看函数# f 函数名原创 2015-10-23 18:32:54 · 305 阅读 · 0 评论 -
va_start和va_end使用详解
介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(...);void foo(parm_list,...);这种方式和我们以前认识的不大一样,但我们要记住这是C中一种传参的形式,在后面我们就会用到它。2.函数参数的传递原理 函数参数是以数据结构转载 2015-07-23 11:22:32 · 8283 阅读 · 0 评论 -
#define
1,防止一个头文件被重复包含 #ifndef BODYDEF_H #define BODYDEF_H //头文件内容 #endif 2,得到指定地址上的一个字节或字 #define MEM_B( x ) ( *( (byte *) (x) ) ) #define MEM_W( x ) ( *( (word *) (x) ) ) 3,得到一个field在结转载 2014-04-10 10:39:28 · 499 阅读 · 0 评论 -
Linux动态库编译
Linux下的动态库以.so为后缀,我也是初次在Linux下使用动态库,写一点入门步骤,以便以后能方便使用。 第一步:编写Linux程序库 文件1.动态库接口文件 //动态库接口文件getmaxlen.h #ifndef _GETMAXLEN_H_ #define _GETMAXLEN_H_ int getMaxLen(int *sel,int N); #endif转载 2014-04-16 19:44:02 · 929 阅读 · 0 评论 -
字符,字节和编码
级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。掌握编码问题的关键是正确地理解相关概念,编码所涉及的技术其实是很简单的。因此,阅读本文时需要慢读多想,多思考。引言“转载 2014-03-03 18:02:49 · 626 阅读 · 0 评论 -
Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的\0结尾,NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char*无法转换为unsigned short*之类的错误,其实就是unicodeU转载 2014-03-03 18:01:52 · 875 阅读 · 0 评论 -
ASCII码,Unicode和UTF-8
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字转载 2014-03-03 10:52:12 · 751 阅读 · 0 评论 -
wireshark使用
阅读目录wireshark介绍wireshark不能做的wireshark VS Fiddler同类的其他工具什么人会用到wiresharkwireshark 开始抓包wireshark 窗口介绍wireshark 显示过滤保存过滤过滤表达式封包列表(Packet List Pane)封包详细信息 (Packet Details Pane)wireshark与对应的OSI七层模型T转载 2014-01-15 11:32:04 · 503 阅读 · 0 评论 -
FTP文件传输协议
文件传输协议(FTP:File Transfer Protocol)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。 FTP 的主要功能如下:提供文件的共享(计算机程序 / 数据); 支持间接使用远程计算机; 使用户不因各类主机文件存储器系统的转载 2013-12-31 17:21:03 · 713 阅读 · 0 评论 -
gdb命令
Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具。 和所有常用的调试工具一样,gdb提供了以下功能: # 监视程序中变量的值 # 在程序中设置断点 # 程序的单步执行 在使用gdb前,必须先载入可执行文件,因为要进行调试,文件中就必须包含调试信息,所以在用gcc或转载 2013-11-11 09:29:37 · 482 阅读 · 0 评论 -
vi命令
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复f转载 2013-11-08 14:10:06 · 404 阅读 · 0 评论 -
字符串匹配算法总结
我想说一句“我日,我讨厌KMP!”。KMP虽然经典,但是理解起来极其复杂,好不容易理解好了,便起码来巨麻烦!老子就是今天图书馆在写了几个小时才勉强写了一个有bug的、效率不高的KMP,特别是计算next数组的部分。其实,比KMP算法速度快的算法大把大把,而且理解起来更简单,为何非要抓住KMP呢?笔试出现字符串模式匹配时直接上sunday算法,既简单又高效,何乐而不为?说实话,想转载 2013-11-01 16:13:02 · 641 阅读 · 0 评论 -
stl string常用函数
string类的构造函数:string(constchar *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常s转载 2013-11-01 12:58:31 · 433 阅读 · 0 评论 -
字符串模糊匹配
一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明: S: ababcababa P: ababa BF算法匹配的步骤如下转载 2013-10-31 16:38:10 · 3374 阅读 · 0 评论 -
opencv2.3.1安装、编译与配置
环境:win8 X64 professional。装有vs2008准备阶段:首先,先去opencv的官网下载opencv的安装包(目前最新版为2.31)传送门:http://www.opencv.org.cn/index.php/Download接着去下载Cmake传送门 http://www.cmake.org/cmake/resources/software转载 2013-10-14 20:21:10 · 1614 阅读 · 0 评论 -
sqlite常用命令
1、进入数据库#sqlite3 xxx.db2、sqlite3查看所有的表>.table3、查看表的结构>select * from sqlite_master where type="table";4、如果只想查看具体一张表的结构,比如查看emperors表,命令为:>select * from sqlite_master where type="table" and原创 2015-10-23 18:26:59 · 708 阅读 · 0 评论