学习笔记
文章平均质量分 70
江风弄舟
高通、MTK智能系统方案开发,IoT设备驱动开发,积累!交流!锐意进取!
展开
-
《程序员修炼之道》学习(一)
Don‘t Live with Broken Windows --不要容忍破窗户 这里的破窗户是指:低劣的设计、错误的决策、或糟糕的代码等,不要留着这些破窗户,发现一个就修改一个。如果没有时间修改,就用木板把他们钉起来,如在问题代码放入注释(comment out)、或是显示‘未实现’的消息、或是用虚设数据(dummy data)加以替代等。破窗户是导致一个整洁、运行良好的系统产生软原创 2010-05-08 16:44:00 · 368 阅读 · 0 评论 -
编程常用概念学习
对象Clone的2种方式:shallow copy 和 deep copy shallow copy和deep copy对值类型对象的都是复制其中的值,但对引用类型对象就不一样了,当采用shallow copy方式复制了几个引用类型对象,若更改了原型对象或副本对象中的某一个的引用类型字段的值,则其他原型对象或副本对象的这个字段的值也将跟着改变(变成修改后的值),但采用deep co原创 2010-06-20 13:41:00 · 397 阅读 · 0 评论 -
C学习摘要
在 C 语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU 跨切循环层的次数。return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被自动销毁。转载 2011-03-25 16:22:00 · 473 阅读 · 0 评论 -
C中的static、extern、#、##
static 作用i:修饰变量。变量又分为局部和全局变量,但它们都存在内存的静态区。 静态全局变量,作用域仅限于变量被定义的文件中,其他文件即使用extern声明也没法使用他。准确地说作用域是从定义之处开始,到文件结尾处结束,在定义之处前面的那些代码行也不能使用它。想要使用就得在前面再加 extern ***。恶心吧?要想不恶心,很简单,直接在文件顶端定义不就得了。 静态局部变量,在函数体里面定义的,就只能在这个函数里用了,同一个文档中的其他函数也用不了。由于被static修转载 2011-04-29 16:49:00 · 402 阅读 · 0 评论 -
指针参数如何传递内存
<br /> 如果函数的参数是一个指针,不要指望用该指针去申请动态内存。下面例子中,Test 函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str 依旧是 NULL。<br />void GetMemory(char *p, int num) <br />{ <br /> p = (char *)malloc(sizeof(char) * num); <br />} <br />void Test(void) <br />{ <br /> char转载 2011-03-18 15:01:00 · 548 阅读 · 0 评论 -
数组和指针
C/C++ 程序中,指针和数组在不少地方可以相互替换着用。任何能由数组下标完成的操作也都可用指针来实现,但程序中使用指针可使代码更紧凑、更灵活。 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。 指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。 1.指向数组元素的指针 int a[10],转载 2011-03-18 11:08:00 · 620 阅读 · 0 评论 -
C/C++内存管理
内存分配方式有三种:从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量很有限。从堆上分配,亦成为动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问转载 2011-03-11 15:13:00 · 624 阅读 · 0 评论 -
近期编程杂记
好久没有搞web页面了,自从到了这家公司以后一直在搞与数据同步相关的web服务和windows服务,近期转到新项目组,web页面编程又搞起来了,差不多半年没搞,还真有点生疏,客户端控制已经不再用javascript,而是用主流的jquery了。另外还开发了一个自定义的分页控件,这个可是都一次搞啊,不停地查资料学习,现在修改的总算拿得出手了,项目组根据进度需要组织大家晚上加了会儿班,虽然不到9点就散了,感觉还是有点累,可能是生物钟被打乱的缘故吧。 为这个项目也忙活了快2个月了,现在将开发过程原创 2010-10-24 11:47:00 · 358 阅读 · 0 评论 -
C++学习笔记之"类和对象I"
成员函数的实现(函数定义)都写在类体中,与一般的函数定义一样。class TDate{public:void SetDate(int y,int m,int d){year=y;month=m;day=d;}void Print(){cout}private:int year,month,day;}成员函数在类体中声明,实现在类体外且在声明之后 例:class TDate{public:void SetDate(int y,int m,int d);void Print();private:int year原创 2010-07-21 18:43:00 · 390 阅读 · 0 评论 -
UML类间关系概念学习
以前也看过有关UML的文章,但始终对类间的关系云里雾里,当时还能理解,但过一段时间就没有什么印象了,感性的认识是无效的,特别对那些想真正提高自己各方面能力的程序员更是如此,记忆是需要不断巩固的,最近一直在学习UML方面的知识,总算积累了些这方面的理性认识,谢谢博客强化一下了(其中斜体部分是自我理解,欢迎指正!)。类间关系从空间上来看分为纵向和横向2种关系纵向关系原创 2010-05-17 10:53:00 · 122 阅读 · 0 评论 -
《程序员修炼之道》学习(二)
‘时间耦合(temporal coupling),作为软件自身的一种设计要素的时间角色,它有2个方面对我们很重要,并发和次序’,这句换很经典!和我们平时所讲的耦合概念正好相对,平常我们所讲耦合确切地说应该叫空间耦合,是在开发项目中一部分与另一部分的关系过于紧密,2者关系是依赖或者其他。这就要求我们在编写程序是打破线性思维,因为这种思考方式会带来时间耦合。 那么我们怎样原创 2010-05-10 21:15:00 · 306 阅读 · 0 评论 -
SPRD-MMI学习笔记
开关型feature options列表型feature optionsmake目录存放和模块对应的编译脚本,属于模块编译脚本Makefile.rules、Makefile.modules、Makefile以及项目的相关make脚本,属于项目编译脚本makefile中变量和转义宏的区别:变量注释的#少于3个,转义宏注释的#至少有3个applicationwindowco原创 2012-03-01 09:02:30 · 5297 阅读 · 0 评论