10 2015 档案

摘要:三叉链表存储表示 改进于二叉链表,增加指向父节点的指针,能更好地实现结点间的访问。 存储结构/* 二叉树的三叉链表存储表示 */ typedef struct BiTPNode { TElemType data; struct BiTPNode *parent,*lchild,*rchild; /* 双亲、左右孩子指针 */ }BiTPNode,*BiPTree; 下面给出二叉... 阅读全文
posted @ 2015-10-31 23:11 程序员修练之路 阅读(3292) 评论(0) 推荐(0) 编辑
摘要:我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句: if(假设成立) { 程序正常运行; } else { 报错&&终止程序!(... 阅读全文
posted @ 2015-10-31 22:59 程序员修练之路 阅读(1000) 评论(0) 推荐(0) 编辑
摘要:VC下Debug和Release区别 最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。网上查找了些资料,在这 罗列汇总下,做为备忘~ 一、Debug 和 Release 的区别 Debug 通常称为调试版本,它包含... 阅读全文
posted @ 2015-10-31 22:54 程序员修练之路 阅读(1397) 评论(0) 推荐(0) 编辑
摘要:1. 简介 只要你在Unix环境中写过程序,你必定会邂逅神秘的Lex&YACC,就如GNU/Linux用户所熟知的Flex&Bison,这里的Flex就是由Vern Paxon实现的一个Lex,Bison则是GNU版本的YACC.在此我们将统一称呼这些程序为Lex和YACC.新版本的程序是向上兼容的(译注:即兼容老版本),所以你可以用Flex和Bison来尝试下我们的实例. 这些程序实用性极广,... 阅读全文
posted @ 2015-10-30 11:46 程序员修练之路 阅读(10718) 评论(0) 推荐(2) 编辑
摘要:写在前面的几句废话 最近在项目的过程中接触了lex 和 yacc,他们可以帮助我们来实现自己的领域语言。最典型的应用就是可以帮助我们来实现自定义测试脚本的执行器。但是,这里也有一个限制,就是测试脚本要做的基本事情必须有现成的C语言库来实现,否则就做不到了;如果基本的操作是用java来做的,那么还可以用Antlr,这里不对Antlr做详细介绍。 lex是什么? 教科书上把lex的作用的作用叫做“词法... 阅读全文
posted @ 2015-10-30 11:26 程序员修练之路 阅读(16313) 评论(0) 推荐(3) 编辑
摘要:Hello World 模块以及对应的内核makefile详解 hello.c: #include //所有模块都需要的头文件 #include // init&exit相关宏 MODULE_LICENSE("GPL"); MODULE_AUTHOR("feifei"); MODULE_DESCRIPTION("hello world module"); static int __i... 阅读全文
posted @ 2015-10-28 21:30 程序员修练之路 阅读(1621) 评论(0) 推荐(0) 编辑
摘要:makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile... 阅读全文
posted @ 2015-10-28 21:09 程序员修练之路 阅读(3243) 评论(1) 推荐(1) 编辑
摘要:一位网友windows xp sp3下安装virtualbox 4.1.20版本,安装好了重启过后,可以打开virtualbox,但是等到创建好虚拟电脑后按启动按钮,就出现了错误提示:“Cannot access the kernel driver”,启动不了 virtualbox。根据错误的提示说明virtualbox不能访问核心驱动,也就是驱动除了问题,一般来说可能是杀毒软件导致安装virtu... 阅读全文
posted @ 2015-10-26 20:36 程序员修练之路 阅读(720) 评论(0) 推荐(1) 编辑
摘要:C语言中*(volatile unsigned int *)0x500的解释: 如下; (unsigned int *)0x500:将地址0x500强制转化为int型指针*(unsigned int *)0x500=0x10:对地址为0x500赋值为0x10 其中volatile关键字有以下用途: (1)用来同步,因为同一个东西可能在不同的存储介质中有多个副本,有些情况下会使得这些副本中的值不同,... 阅读全文
posted @ 2015-10-26 19:48 程序员修练之路 阅读(5764) 评论(0) 推荐(0) 编辑
摘要:1.一种直观的方法 假设现在需要往内存0x12ff7c地址上存入一个整型数0x100。我们怎么才能做到呢? 我们知道可以通过一个指针向其指向的内存地址写入数据,那么这里的内存地址0x12ff7c其本质不就是一个指针嘛。所以我们可以用下面的方法: int *p = (int *)0x12ff7c; *p = 0x100; 需要注意的是将地址0x12ff7c赋值给指针变量p的时候必须强制转换。 1.1... 阅读全文
posted @ 2015-10-26 19:45 程序员修练之路 阅读(582) 评论(0) 推荐(0) 编辑
摘要:这俩兄弟长得实在太像,以至于经常让人混淆。然而细心领会和甄别就会发现它们大有不同。 前者是指针数组,后者是指向数组的指针。更详细地说。 前: 指针数组;是一个元素全为指针的数组.后: 数组指针;可以直接理解是指针,只是这个指针类型不是int也不是char而是 int [4]类型的数组.(可以结合函数指针一并看看......) int*p[4]------p是一个指针数组,每一个指向一个int型的i... 阅读全文
posted @ 2015-10-26 19:41 程序员修练之路 阅读(1417) 评论(0) 推荐(0) 编辑
摘要:学了那么多程序语言,总是有一个Hello world开头,不禁感叹Hello world的强大。呵呵,废话少说,咋们的故事当然要从这个Hello world开始。 先查看自己OS使用的内核版本[dongliang@dongliang:~]$ uname -r2.6.22-14-generic /* 这是我显示的结果 */ 如果安装系统时,自动安装了源码。在 /usr/src 目录下有对应的使用的版... 阅读全文
posted @ 2015-10-26 10:07 程序员修练之路 阅读(1028) 评论(0) 推荐(0) 编辑
摘要:Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 General setup常规设置 Local version - append to kernel release 在内核版本后面加... 阅读全文
posted @ 2015-10-26 10:02 程序员修练之路 阅读(2118) 评论(0) 推荐(0) 编辑
摘要:一、下载源代码和编译软件的准备 下载内核源代码:http://www.kernel.org/ 注意,点击2.6.25内核的F版,即完整版。 如果你懒得去网站点联接,运行下列命令: 代码: $cd ~$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.10.tar.bz2安装有关编译程序。安装make ,gcc, make... 阅读全文
posted @ 2015-10-26 09:59 程序员修练之路 阅读(723) 评论(0) 推荐(0) 编辑
摘要:原来使用的ubuntu 11.10系统由于误操作,导致系统崩溃,重新安装了ubuntu 11.10; 在编译内核的时候,提示如下错误: dingq@wd-u1110:~/hwsvn/2sw/1prj_linux/pdu/kernel/linux-2.6.30$ make menuconfig *** Unable to find the ncurses libraries or the ... 阅读全文
posted @ 2015-10-26 09:54 程序员修练之路 阅读(1126) 评论(0) 推荐(0) 编辑
摘要:假设你在进行一个游戏节目。现给三扇门供你选择:其中一扇门后面是一个大奖(比如奥迪R8),另两扇门后面神马都没有。你不是托,所以你的目的当然是拿大奖,但是你显然不知道门后面是啥东东。主持人(虽然ta知道门后面都是啥,但ta就是不告诉你)先让你做第一次选择。在你选择了一扇门后,主持人并没有立刻打开这扇门,而是打开了另外一扇木有奖的门给你看。现在,主持人告诉你,你有一次重新选择的机会。那么,请你思考一下... 阅读全文
posted @ 2015-10-23 22:30 程序员修练之路 阅读(1969) 评论(0) 推荐(0) 编辑
摘要:对于新手来说,从其他地方拷贝代码来研究学习是很经常的事情,但是有的时候很不幸,拷贝过来的代码附带了令人烦恼的“行号”。比如下图的一段JavaScript代码: 如果代码少的话还可以,一个一个删除呗。多的话就是噩梦哦,还不如自己照着把代码输一遍呢。怎么办呢? 在vs中有一个小技巧,按住Alt键然后鼠标左键选择可以一整块的代码。如图: 哈哈,利用这个小技巧我们就可以很轻松的选中... 阅读全文
posted @ 2015-10-23 22:22 程序员修练之路 阅读(2298) 评论(0) 推荐(2) 编辑
摘要:不少人都爱玩斗地主,牌好了就叫地主,不好就跟着当农民,有时候一手烂牌,总说运气不好,那么运气好有几成几率呢?今天我就来研究研究运气好坏是怎样的概率…… 首先,看看抓到两个王的情况,首先不翻开底牌时,你手里的牌有C{17,54}种情况,其中抓到两个王的情况有C{15,52}种情况,经计算,抓到两个王的概率应该是是C{15,52}/C{17,54}=52!/15!/37!/54!*17!*37!=13... 阅读全文
posted @ 2015-10-22 20:49 程序员修练之路 阅读(2306) 评论(1) 推荐(0) 编辑
摘要:在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分)。例如 int a=15/10; a的结果为1。 同样的在Java中也是如此,所以两个int型的数据相除需要返回一个浮点型数据的时候就需要强制类型转换,例如 float a = (float)b/c ,其中b、c都是int型数据。 Python中分为3种除法:传统除法、精确除法、地板除。 传统除法 如果是整数除法则执行地板除,如果是浮点... 阅读全文
posted @ 2015-10-19 11:01 程序员修练之路 阅读(3183) 评论(0) 推荐(0) 编辑
摘要:去年就知道有这个功能,不过没去深究总结过,最近有写网络博客的欲望了,于是又重新拾起这玩意儿。 具体到底是用Windows Live Writer 2012还是用Word 2013,个人觉得看个人,因为这2个软件各有优点,各有缺点。 1、首先用LiveWriter发博客显然更专业,发布后的效果也与本地最接近,但是在编辑功能上肯定大不如Word,另外一个最大缺点是它本地保存的格式不是doc。 2、而W... 阅读全文
posted @ 2015-10-11 10:47 程序员修练之路 阅读(177) 评论(0) 推荐(0) 编辑
摘要:1.1.1 摘要 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就是我们今天要介绍的——单例模式(Singleton)。 使用频率 高 单件模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。 ... 阅读全文
posted @ 2015-10-10 16:39 程序员修练之路 阅读(362) 评论(0) 推荐(0) 编辑
摘要:在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。 shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。 精确时间的格式是hh:mm,表示小时和分钟,时间段由... 阅读全文
posted @ 2015-10-10 16:33 程序员修练之路 阅读(1604) 评论(0) 推荐(0) 编辑
摘要:1, 先执行内部静态对象的构造函数,如果有多个按定义的先后顺序执行;而且静态类的构造函数只会被执行一次,只在其第一个对象创建时调用,即便是创建了同一个类的多个对象,例如main()函数里b1,b2创建了同一个类的两个对象,但是grandmaMotherClass的构造函数只被执行了一次 2, 再执行父类的构造函数(c++中如果有多个,可按照左右先后顺序执行) 3, 再执行内部普通对象的构造函... 阅读全文
posted @ 2015-10-10 15:55 程序员修练之路 阅读(8009) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示