2012年6月5日

ubuntu12.04 修改mysql配置[mysqld]编码出错

摘要: $sudo vi /etc/mysql/my.cnf[client] 下添加default-character-set=utf8$mysql -u root -pEnter password:mysql> show variables like 'character%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_se 阅读全文

posted @ 2012-06-05 13:58 xuangong 阅读(476) 评论(0) 推荐(0) 编辑

2011年8月5日

(转载)程序员的十层楼

摘要: 转载注:请以批判的眼光看待。作者:周伟明 自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。 那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。 当然,对于如何划分程序员的技术层级,不同公司或不 阅读全文

posted @ 2011-08-05 12:37 xuangong 阅读(159) 评论(0) 推荐(0) 编辑

2011年7月31日

C内存字节对齐详解(转)

摘要: 原文地址:http://hi.baidu.com/jjpro/blog/item/06ea380859eac433e82488f8.html一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按 阅读全文

posted @ 2011-07-31 16:35 xuangong 阅读(425) 评论(0) 推荐(0) 编辑

【转】C++实用技巧(四)

摘要: 之前的文章讲了指针和内存的一些问题,今天说一下单元测试的问题。如果在团队里面没有对单元测试的框架有要求的话,其实我们可以使用一个最简单的方法来搭建在IDE里面运行的单元测试框架,整个框架只需十几行代码。我们先来考虑一下功能最少的单元测试框架需要完成什么样的内容。首先我们要运行一个一个的测试用例,其次在一个测试用例里面我们要检查一些条件是否成立。举个例子,我们写一个函数将两个字符串连接起来,一般来说要进行下面的测试:1#include"MyUnitTestFramework.h"//等一下我们会展示一下如何用最少的代码完成这个头文件的内容2#include"&quo 阅读全文

posted @ 2011-07-31 13:04 xuangong 阅读(179) 评论(0) 推荐(0) 编辑

【转】C++实用技巧(三)

摘要: 今天是关于内存的最后一篇了。上一篇文章讲了为什么不能对一个东西随便memset。里面的demo代码出了点小bug,不过我不喜欢在发文章的时候里面的demo代码也拿去编译和运行,所以大家有什么发现的问题就评论吧。这样也便于后来的人不会受到误导。这次说的仍然是构造函数和析构函数的事情,不过我们将通过亲手开发一个智能指针的方法,知道引用计数如何帮助管理资源,以及错误使用引用计数的情况。 首先先来看一下智能指针是如何帮助我们管理内存的。现在智能指针的实现非常多,我就假设这个类型叫Ptr<T>吧。这跟Vczh Library++ 3.0所使用的实现一样。1classBase2{3public 阅读全文

posted @ 2011-07-31 13:03 xuangong 阅读(202) 评论(0) 推荐(0) 编辑

【转】C++实用技巧(二)

摘要: 上一篇文章讲到了如何检查内存泄露。其实只要肯用C++的STL里面的高级功能的话,内存泄露是很容易避免的。我在开发Vczh Library++ 3.0的时候,所有的测试用例都保证跑完了没有内存泄露。但是很可惜有些C++团队不能使用异常,更甚者不允许写构造函数析构函数之类,前一个还好,后一个简直就是在用C。当然有这些变态规定的地方STL都是用不了的,所以我们更加需要扎实的基础来开发C++程序。 今天这一篇主要还是讲指针的问题。因为上一篇文章一笔带过,今天就来详细讲内存泄漏或者野指针发生的各种情况。当然我不可能一下子举出全部的例子,只能说一些常见的。一、错误覆盖内存。 之前提到的不能随便乱memse 阅读全文

posted @ 2011-07-31 13:00 xuangong 阅读(321) 评论(0) 推荐(0) 编辑

【转】C++实用技巧(一)

摘要: C++实谓各种语言中的软肋,功能强大,陷阱更强大。当然我认为一门语言用得不好完全是程序员的责任,不过因为C++涉及到的概念实在是太多,想用好实在也不是一件容易的事情。C++开发的时候总是会遇到各种各样的问题,其中最严重的无非是内存相关的。C语言由于结构简单,内存处理起来虽然不得力,但总的来说惯用法已经深入人心,因此也不会造成什么很难发现的错误。C++就不一样了。有了虚函数、构造函数、析构函数、复制构造函数和operator=重载之后,还是有很多人喜欢把一个类直接写进文件流,或者拿来memset,代码一团乱麻,不知悔改也。但是不能因此因噎废食,就像某人因为C++带来的心智问题太多,自己搞不定,. 阅读全文

posted @ 2011-07-31 12:57 xuangong 阅读(192) 评论(0) 推荐(0) 编辑

如何手写语法分析器(转)

摘要: 从网上无意间看到这个系列的文章,作者非常有想法,转下来慢慢研究,好好学习。 祝大家学习愉快,做自己的爱好 ^_^ !如何手写语法分析器陈梓瀚华南理工大学软件05级本科在写可配置的语法分析器之前,我觉得还是先说说如何手写语法分析器好。因为对于大部分人来说,开发一个可配置的语法分析器并没有什么作用,反而针对某种特定的语法开发特定的语法分析器是特别有必要的。典型的有表达式计算器、某种格式化的文件(HTML、XML等)或者是其他的复杂而且符合树型结构的字符串。根据目前论坛的反应来看,有一些朋友们对如何开发一套自己的脚本引擎比较感兴趣。等基础的文章都写完以后我会考虑撰写一个系列的文章介绍如何开发自己的脚 阅读全文

posted @ 2011-07-31 12:49 xuangong 阅读(983) 评论(0) 推荐(0) 编辑

【转】C++轻量级可配置语法分析器

摘要: Combinator_Parser这个分析器包含了四个文件: VL_Data_Basic.h(使用了其中的智能指针VL_AutoPtr和一些类型重命名) VL_CpData.h(数据结构) VL_CpKernel.h/cpp(词法分析器和语法分析器)以下是将一个四则运算式子的字符串进行词法分析,分割成记号之后求值的代码:1#include"..\..\..\..\VL++\Library\Platform\VL_Console.h"2#include"..\..\..\..\VL++\Library\Data\Grammar2\VL_CpKernel.h" 阅读全文

posted @ 2011-07-31 12:22 xuangong 阅读(418) 评论(0) 推荐(0) 编辑

【转】Vczh Library++3.0之可配置语法分析器(分析器内核)

摘要: 从网上无意间看到这个系列的文章,作者非常有想法,转下来慢慢研究,好好学习。 祝大家学习愉快,做自己的爱好 ^_^ !在上一篇文章中,我们已经实现了在C++中直接写文法并转换成文法树的工作,现在要开始实现三个组合文法了。 文法树的定义是递归的,所以我们的文法树在分析输入的时候也是递归的。每个文法树都由更小的文法树组成,因此每一个文法树在分析输入的时候都需要调用更小的文法树的分析过程。因为连接、分支和循环都很像,因此下面我的描述性文字会少一些。 下面是连接的代码:1template<typenameI,typenameO1,typenameO2>2class_Seq:publicCom 阅读全文

posted @ 2011-07-31 12:18 xuangong 阅读(233) 评论(0) 推荐(0) 编辑

导航