2012年6月18日

有关多重继承、抽象数据类型和java的一些情况(转载)

摘要: 许多C++程序员都知道Java在很大程度上是基于C++的,然后Java的创立者选择省略掉多重继承。他们认为多重继承引入了复杂性,这不利于Java的易用性。他们认为使用所谓的接口可以实现多重继承的90%的功能。 一个接口更像一个抽象数据类型,它定义了一组只能在派生类中实现的函数。然后使用接口,你并不是直接从接口派生,而是从另一个类派生后实现这个接口,就像多重继承一样。... 阅读全文

posted @ 2012-06-18 12:13 Jerry Zong 阅读(322) 评论(0) 推荐(0) 编辑

2012年6月11日

(转载)何时使用引用以及何时引用指针

摘要: c++程序员相对于指针来说更喜欢使用引用。因为引用不仅使程序清晰,而且易于使用,并且能够很好的隐藏信息。 但是引用不能被重新赋新值。如果你需要使用一个变量指向不同的对象,那么就必须使用指针。引用不能为空,因此如果问题中存在对象为空的情况,就绝对不恩能够使用引用。在这种情况下就必须使用指针。 如果不能再自由存储区(堆内存)分配一块内存,它就会返回一个空... 阅读全文

posted @ 2012-06-11 15:19 Jerry Zong 阅读(374) 评论(0) 推荐(0) 编辑

2012年6月4日

(转载)堆内存和栈内存的区别

摘要: 1 、栈区( stack )— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限.2 、堆区( heap )— 亦称动态内存分配.程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。动态内存的生存期可以由我们决定,如果我们不释放内存,程序将在最后才释放掉动态内存.但是,良好的编程习惯是:如果某动态内存不再使用,需要将其释放掉,否则,我们认为发生了内存泄漏现象。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表.3 阅读全文

posted @ 2012-06-04 15:24 Jerry Zong 阅读(195) 评论(0) 推荐(0) 编辑

2012年3月31日

展讯开发学习00---千里之行始于Hello World

摘要: 几乎所有的程序语言的开发指南第一讲都是编写一个HelloWolrd程序。因此有一则笑话调侃程序员说道:“一个程序员干了一辈子,老了退休了,想了想要干点啥。觉得写毛笔字很不错,于是买来了最好的文房四宝。摆在桌上想了半天写啥,最后凝神屏气,挥笔写下几个大字:HelloWorld“!!! 本文的书写是参考展讯《Mocor平台MMI开发指南》,都是挑选常用的内容配合代码讲。 阅读全文

posted @ 2012-03-31 16:52 Jerry Zong 阅读(401) 评论(0) 推荐(0) 编辑

MTK mmi增加菜单

摘要: 一、增加菜单1.定义菜单id Globalmenuitems.h2.增加子菜单 res_mainmenu.c 有两处需要增加a, organizer 菜单的枚举增加 一个b, void populatemainmenures(void)函数中为organizer菜单(add_application_menuitem)增加一个子菜单id(在globalmenuitem中定义了)3.函数之间的调用在res_organizer.c文件中增加 extern void PopulateMyAppRes(void);在PopulateOrganizerRes(void)函数中增加对 PopulateMyA 阅读全文

posted @ 2012-03-31 16:13 Jerry Zong 阅读(930) 评论(0) 推荐(0) 编辑

MTK 移植泰文输入法

摘要: 1.移植zi输入法 1.1 在文件..\make\XXX_GPRS.mak中 讲输入方式改为MMI_ZI XXX_LANGUAGE = EN_SM_THAI INPUT_METHOD =MMI_XI 1.2在MMI_feature.h 打开相应的ZI语言输入法的宏开关, #if defined(CFG_MMI_LANG_THAI) && ((CFG_MMI_LANG_THAI == __ON__)||(CFG_MMI_LANG_THAI == __AUTO__)) #ifndef __MMI_LANG_THAI__ #define __MMI_LANG_THAI__ #endi 阅读全文

posted @ 2012-03-31 16:03 Jerry Zong 阅读(975) 评论(0) 推荐(0) 编辑

MTK怎样移植LCD 驱动

摘要: 以我在公司项目移植ILI9327DS为例:移植时,我拿到的文档包括厂商提供的代码仅提供Init代码和一个datasheet文档。mtk写代码时最重要的一点就是进行宏控制。1.定义宏 LCD_ILI9327DS_ACTIVE定义位置可以lcd.c ,lcd_sw.h或者按照定义模块。在在客户定制里边定义(在这个位置定义需要new)#define LCD_ILI9327DS_ACTIVE客户定制:COMTOM_OPTION += LCD_ILI9327DS_ACTIVE2。在lcd.c加入ILI9327DS的相关函数重点是Init ,这个部分参考厂商代码。3。 查看datasheet里边会有进入或 阅读全文

posted @ 2012-03-31 15:59 Jerry Zong 阅读(3740) 评论(1) 推荐(0) 编辑

在Linux中设置共享目录

摘要: 1.是否安装了samba服务sudo apt-get install sambasudo apt-get install smbfs2.创建需要共享的目录/ home/usr/share在目录/home/xxxx/share xxx为用户名mkdir share3.修改该目录权限chmod 777 share4.备份并编辑smb.conf允许网络用户访问Sudo cp /etc/samba/smb.conf/etc/samba/smb.confSudo gedit /etc/samba/smb.conf搜索security=user加入security = userusername map = 阅读全文

posted @ 2012-03-31 15:54 Jerry Zong 阅读(51064) 评论(0) 推荐(2) 编辑

GDB初步学习

摘要: 在编写程序过程中难免会遇到错误。这时就需要调试工具帮我们找到代码并修改。GDB则是在LINUX编程学习中不可逾越的需要学习的工具。为使用GDB进行调试,对代码进行调试时要求在编译的时候用-g 选项,以生成增加的符号表。$ gcc –g debugme.c –o debugme./debugme来执行程序时,会产生一个段错误并转储内存dump core.a) 启动gdb,程序名和内存转储文件core作为参数 $gdb debugme core另外可以使用参数 –d dirname来指定源代码的路径。b) 然后在调试环境下运行这个程序。Run,之后会显示错误信息。c) 知道哪个函数出了问题了。但到 阅读全文

posted @ 2012-03-31 13:09 Jerry Zong 阅读(476) 评论(0) 推荐(1) 编辑

2012年3月29日

CVS初步学习

摘要: CVS成为版本控制问题更好的解决方案的原因有几个。第一,它比RCS更适合管理多目录的项目,因为它使用了单一的主代码树。 第二,它能处理分布式项目。最大的优点在于多名开发人员能同时在一个相同的文件上工作。 设置CVS 1.创建源代码库并初始化. cvs –d $HOME/cvs init -d指定了要初始化的CVS源代码库。Init命令创建目录并且把一系列用于管理源代码库的文件存放在子目录CVSROOT下。一旦该目录初始化工作完成,立即设置环境变量$CVSROOT,把它指向这个目录。如果正在执行bash,执行export CVSROOT = $HOEM/cvs.为了方便可以把这条语句放到shel 阅读全文

posted @ 2012-03-29 16:27 Jerry Zong 阅读(286) 评论(0) 推荐(0) 编辑

导航