自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (4)
  • 收藏
  • 关注

转载 gdb 命令列表

应用gdb进行调试下面是简单命令,另外网上可以找到 gdb quick reference .pdf看到更多命令列表1. 启动gdb 应用程序名gdb 应用程序名 core文件名gdb 应用程序名 pid             gdb --args 应用程序名 应用程序的运行参数帮助:help    显示帮助info    显示程序状态se

2016-03-03 17:28:57 557

转载 值得学习的C语言开源项目

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]值得学习的C语言开源项目- 1 Webbench- 2 Tinyhttpd- 3 cJSON- 4 CMockery- 5 Libev- 6 Memcached- 7 Lua- 8 SQLite- 9 UNIX v6- 10 NETBSDC 资源大全标准库框架人工智能异步事件循环音频生态学压缩并发性

2016-01-14 13:52:23 552

转载 编程语言拟人化(二)

PerlPerl于1987年12月、美国的沃尔夫妇家中诞生。其父亲拉里精通计算机、语言学,母亲也从事中世纪文艺复兴和语言学专业,Perl就是在这样接受了高等教育的父母身边长大的。父亲的教育虽然严厉,却也给了Perl许多自由。父亲在教育过程中经常说的一句话是:“方法不止有一个。”(There’s more than one way to do it)想到实现什么时,达成的

2015-12-23 15:36:35 582

转载 编程语言拟人化(一)

Java犹如宫泽贤治的《不畏风雨》中出现的、性格木讷的女孩子。从小就由于迟钝和大食量等特征被别人当作笨蛋,从小学入学开始进入田径部、坚持跑步,在中长跑中经常取得好成绩,给人以活泼的印象。是十分努力的女孩子。她的家境并不算好。父亲Sun是有才能的艺术家,但不擅长理财,在她14岁的时候因为苦于借债积劳成疾而去世。她被Oracle叔叔收养,那时还与Google叔叔之间因为对她的扶养权

2015-12-23 15:35:07 1154

转载 跟我一起写 Makefile(六)

书写命令————每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin/s

2015-12-22 17:01:28 306

转载 跟我一起写 Makefile(五)

六、多目标Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令是同一个,这可能会可我们带来麻烦,不过好在我们的可以使用一个自动化变量“$@”(关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。

2015-12-22 16:36:38 330

转载 跟我一起写 Makefile(四)

书写规则————规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一

2015-12-14 20:27:26 325

转载 跟我一起写 Makefile(三)

Makefile 总述———————一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗

2015-12-14 19:57:27 338

转载 跟我一起写 Makefile(二)

三、make是如何工作的在默认的方式下,也就是我们只输入make命令。那么,   1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。    2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。    3、如果edit文件不存在,或是edit所依赖的后面的

2015-12-14 19:41:12 302

转载 跟我一起写 Makefile(一)

跟我一起写 Makefile 陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软

2015-12-14 18:45:03 373

转载 我所理解的设计模式(C++实现)——观察者模式(Observer Pattern)

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]概述:        最近中国股市起起伏伏,当然了起伏就用商机,小明发现商机后果断想入市,买入了中国证券,他想在电脑客户端上,网页上,手机上,iPad上都可以查看到该证券的实时行情,这种情况下我们应该怎么设计我们的软件呢?我们可以这样:小明的所有客户端上都订阅中国证券这个股票,只要股票一

2015-11-30 18:55:14 365

转载 通过金矿模型介绍动态规划

对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你产生错误理解的地方,让你难得读懂的地方,请跟贴指出,谢谢!    ----第一节

2015-11-23 10:23:56 420

转载 HTTP协议学习(四)——Web服务器

本篇疑惑:HTTP服务器如何处理HTTP请求的?首先介绍一下什么是web服务器,我个人理解就是能支撑web应用正常工作的软硬件结合的一个玩意儿。web服务器可以是一套软件,一台小型机等。但最终提供支持的都是软件。硬件只是作为一个载体用于支撑web服务器软件的运行。下面开始介绍Web服务器是如何处理客户端请求的。笔者整理为以下步骤:接收客户端请求——接收请求——处理请求——访问资源—

2015-11-19 21:25:40 527

转载 HTTP协议学习(三)——连接管理

本篇将讲述(可以参考《HTTP权威指南》的第四章、连接管理):一、HTTP如何使用TCP连接的?二、TCP连接的延时、瓶颈在哪儿?。三、HTTP的连接优化方法?首先说说第一个问题,HTTP如何使用TCP连接?由于HTTP协议几乎都是由TCP/IP承载,所以在说HTTP如何使用TCP连接之前、必须要了解TCP/IP连接的一些基本知识点、首先TCP是点对点[源IP+端口和目标I

2015-11-19 21:18:23 410

转载 HTTP协议学习(二)——响应状态码及其含义

在请求到达服务器时、服务器会响应给客户端 多个Status Code(当然也包括响应内容)。每个资源都会有一个StatusCode。状态码的作用是为了告诉客户端资源请求是服务器的响应状态(错误?正常[正常又分多种])。状态码的出现位置为响应头(Response Line)中。不同的状态码标志这不同的信息。响应状态码用于表示服务器对请求的各种不同处理结果和状态,他是一个三

2015-11-19 21:08:24 394

转载 HTTP协议学习(一)——URL与资源,报文结构详解

一、URL在http传输中、我们都是通过url来寻找网络资源的。但是你真的了解url吗?你知道url的构成是怎么样的吗?如果你知道,那好吧、恭喜你、可以跳过URL这一小节了。oh~~ if not ,请跟我一起来认识一下我们每天都要敲上几百次的URL吧!首先说url(Uniform Resource Locator)的构成。URL是由三部分组成的,传输协议+域名或IP地

2015-11-19 21:06:15 602

转载 命令行svn全部操作

svn命令 通常都有帮助,可通过如下方式查询:$ svn help 知道了子命令,但是不知道子命令的用法,还可以查询:$ svn help add 开发人员常用命令(1) 导入项目$ cd ~/project$ mkdir -p svntest/{trunk,branches,tags}$ svn import svntest https:/

2015-11-10 20:20:23 306

转载 VIM语法高亮、VIM代码补全、VIM结构化视图功能的配置实现

===========================================【简介】      为了更加方便的学习和研究一个开源c++项目(当然linux环境下),特地花了一两周的时间研究vim及其插件的配置和使用方法,整理出来:一来做个记录便于日后回顾查看,二来分享出来为大家提供方便。vim是什么      vim是一款功能强大、支持各种插件、配置极为灵活的编辑器,

2015-11-03 15:50:51 4973

转载 vim中多标签和多窗口的使用

1、打开多个窗口打开多个窗口的命令以下几个:横向切割窗口:new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名纵向切割窗口名:vsplit+窗口名,也可以简写为:vsp+窗口名     vim -o file1 file2 ...  #水平打开多窗口,    vim -O file1 file2

2015-10-22 18:40:40 475

转载 【Boost】C++ Boost 学习资源列表

文档书籍下载Boost DocumentationBoost代码下载   优秀网站导航Boost官方网站Boost中文站Boost Consulting  专题资源报告Linux伊甸园- STL/boost专区CSDN-Boost系列专题   个人博客推荐

2015-10-13 18:37:41 309

转载 c语言中的正则表达式regex.h

如果用户熟悉Linux下的sed、awk、grep或vi,那么对正则表达式这一概念肯定不会陌生。由于它可以极大地简化处理字符串时的复杂度,因此现在已经在许多Linux实用工具中得到了应用。千万不要以为正则表达式只是Perl、Python、Bash等脚本语言的专利,作为C语言程序员,用户同样可以在自己的程序中运用正则表达式。     标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/

2015-10-08 16:04:17 727

转载 linux--posix多线程编程----第一篇

一   线程创建1.1 线程与进程相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。在串行程序基础上引入线程和进程是为了提高程序的并发度,从而提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而

2015-09-25 14:14:46 1488

转载 C++中的SFINAE

这几天神游到一段is_base_of的代码迷惑了很久, 在查资料的过程当中, 发现C++中一种称之为SFINAE的技巧, 全称为"匹配失败并不是一种错误(Substitution Failure Is Not An Error)". 这是一种专门利用编译器匹配失败来达到某种目的的技巧.在说明之前先说说模板匹配的原则: 非模板函数具有最高优先权, 如果不存在匹配的非模板函数的话, 那么最匹配

2015-09-24 20:33:27 288

转载 ostringstream的用法

使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转换,也许你首先会问:为什么要花额外的精力来学习基于的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int

2015-09-23 11:02:26 330

原创 Effective C++读书笔记(二)

二、构造/析构/赋值运算条款05:了解C++默默编写并调用哪些函数如果你自己没声明,编译器就会为它声明(编译器版本的)一个copy构造函数,一个copy assignment操作符和一个析构函数。此外如果你没有声明任何构造函数,编译器也会成为你声明一个默认构造函数。所有这些函数都是public且inline。惟有当这些函数被需要(被调用),它们才会被编译器创建出来。注意

2015-09-14 21:19:25 310

原创 Effective C++读书笔记(一)

一、让自己习惯C++   条款01:视C++为一个语言联邦   将C++视为一个由相关语言组成的联邦而非单一语言,由四个主要的次语言组成。C。说到底C++仍是以C为基础。区块,语句,预处理器,内置数据类型,数组,指针统统来自C。Object-Oreinted C++。这一部分也就是C with Classes所诉求的。类,封装,继承,多态,virtual函数(动

2015-09-10 11:36:05 297

转载 linux多线程学习

1.Linux“线程”     进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。     大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建时c

2015-09-09 17:10:29 269

转载 Redis快速入门

1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis数据结构 – strings9.redis数据结构 – lists10.redis数据结构 – 集合11.redis数据结构 – 有序集合12.redis数据结构 –

2015-09-08 16:43:11 256

转载 Redis命令

目录(?)[-]redis命令key命令string命令hash命令list命令set命令zset命令redis命令key命令命令描述DEL key在key存在时删除keyDUMP key序列话给定key,并返回被序列化的值EXISTS key检查给定key是否存在

2015-09-06 16:28:42 875

转载 KMP算法

二.KMP算法    KMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O(m+n)。  在KMP算法中,为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j

2015-09-01 21:32:03 223

转载 KMP算法

字符串匹配是计算机的基本任务之一。  举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?  许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。  这种算法不太容

2015-09-01 20:42:40 250

转载 msys2 安装笔记

以前一直在用 msys,最近发现还有个 msys2,并且msys2 配套的编译器是MinGW-w64。 就试着用了用,感觉还不错,这里把安装过程记录一下。简单的说,MSYS2 是MSYS的一个升级版, 提供了bash shell, Autotools, 版本控制软件和MinGW-w64 工具链。与MSYS最大的区别是移植了 Arch Linux的软件包管理系统 Pacman。有了 Pacm

2015-08-11 16:00:51 439

转载 C++宏中的“#”与“##”用法

在C/C++的宏中“#”与"##"用法:        “#”宏参数变为一个字符串,简单说就是在它引用的宏变量的左右各加上一个双引号;”##“宏是把两个宏参数贴合在一起,就是将两个宏参数合并成一个名字。如定义:#define MACRO_STRING(x) (#x)       char *pChar = "hello";       char *pChar = MAC

2015-07-16 21:16:47 276

转载 #pragma once 和#ifndef ... #define ... #endif 比较

C++中防止头文件被多次include 的常见方式有:1) 用#ifndef ...  #define ... #endif  宏 #ifndef __MYHEADER_H__#define __MYHEADER_H__ // Here is my class ... #endif  2) 用 #pragma once

2015-07-15 20:36:36 293

转载 QQ游戏百万人同时在线服务器架构实现

QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的强大棋牌休闲游戏帝国。  那么,在技术上,QQ游戏到底是如何实现百万人

2015-07-15 20:25:55 500

转载 使用 C++ 处理 JSON 数据交换格式

使用 C++ 处理 JSON 数据交换格式 一、摘要    JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON官方的解释为:JSON 是一种轻量级的数据传输格式。本文并不详细介绍 JSON 本身的细节,旨在讨论如何使用 C++ 语言来处理 JSON。关于 JSON 更具体的信息,可参见 J

2015-07-13 13:59:50 328

转载 Builder模式——设计模式学习

Buileder(生成器)—对象创建型模式一 意图将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。二 适用性在以下情况使用Build模式:1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2 当构造过程必须允许被构造的对象有不同的表示时。3 Builder模式要解决的也正是这样的问题: 

2015-07-10 10:31:18 294

转载 用GDB调试程序(七)

改变程序的执行———————    一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。        一、修改变量值    修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的pr

2015-04-28 17:02:57 243

转载 用GDB调试程序(六)

七、设置显示选项    GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。    set print address     set print address on         打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如:                (gdb) f        #0  set_quo

2015-04-28 17:00:33 270

转载 用GDB调试程序(五)

查看运行时数据———————        在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是:        print     print /         是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按1

2015-04-28 16:59:03 238

C#编程语言程序设计与开发

C#编程语言程序设计与开发 陈钟 刘强著 清华大学出版社

2014-03-17

VC6+MSDN精简

VC++MSDN精简版,帮助文档。里面有WINAIP函数库,MFC类库详解等等

2014-03-17

code from the book

c++源代码 共有100多个实例 名字为 Code from the book 供大家学习与参考

2014-03-16

C语言程序开发范例宝典

《C语言程序开发范例宝典》的配套代码 ,学号c语言,提高编程能力

2013-04-18

空空如也

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

TA关注的人

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