2013年9月27日

初学者学习编程语言的烦恼

摘要: http://blog.sina.com.cn/s/blog_94479040010158l9.html1、抄代码:抄代码,刚开始写,抄错属于很正常的现象2、模仿写:自己会写一些简单的代码,但还不太清楚怎样下手写一个完整的代码模块,所以要模仿着写3、模仿改:软件工作中debug占据了工程师大部分时间,这时由于没有经验和思路,所以建议模仿着改4、勤调试:自己试着写一些代码,通过不断调试来验证自己的一些想法,继续思考,再次验证,来回折腾5、看 n遍:出错或遇到问题时,将代码从头看到尾,看了一遍又一遍,直到快全部记住时,总能找出问题原因,相信方法总会比问题多6、找感觉:主动找到写代码的感觉和成就感, 阅读全文

posted @ 2013-09-27 19:54 屁屁侠 阅读(168) 评论(0) 推荐(0)

关于程序员成长的一点思考

摘要: 关于程序员成长的一点思考新闻来源:51CTO 程序员的我们,是否想过今后的路该怎么走、如何发展、技术怎样提高?其实这也是我一直在思考的问题。下面就此问题,分享下我的看法。因为我阅历有限,有什么说的不对的,大家一起喷! 一、程序员应该打好基础 1. 现在开发工具众多、语言泛滥,经常听人说”不学CC++神马都是浮云”、”CC++才是万王之王”,CC++就真比PHP、Lua、AS、JAVA牛吗? 其实不在于语言本身,而在于CC++依附的平台。因为最靠近操作系统,所以能发挥其它语言不具有的性能优势,而且很多数据结构、算法、特殊功能 类,CC++是不提供的,需要自己实现。这时就需要自己去温习”数据结.. 阅读全文

posted @ 2013-09-27 19:45 屁屁侠 阅读(231) 评论(0) 推荐(0)

堆和栈的区别

摘要: 一、预备知识 程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 : 1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。 其操作方式类似于数据结构中的栈。 2、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回 收 。 注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的。 初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 程序结束后由系统释放。 4、文字常量区 :常量字... 阅读全文

posted @ 2013-09-27 18:21 屁屁侠 阅读(532) 评论(0) 推荐(0)

c语言中struct的内存对齐

摘要: 为了让CPU能够更舒服地访问到变量,struct中的各成员变量的存储地址有一套对齐的机制。这个机制概括起来有两点:第一,每个成员变量的首地址,必须是它的类型的对齐值的整数倍,如果不满足,它与前一个成员变量之间要填充(padding)一些无意义的字节来满足;第二,整个struct的大小,必须是该struct中所有成员的类型中对齐值最大者的整数倍,如果不满足,在最后一个成员后面填充。各种类型的变量的align值如下,参考的是wikipedia的页面:--------------------------------------------------------------------------- 阅读全文

posted @ 2013-09-27 14:12 屁屁侠 阅读(2492) 评论(0) 推荐(0)

内存对齐与ANSI C中struct型数据的内存布局

摘要: 当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的首地址等于整个结构体实例的首地址。比如有这样一个结构体: struct vector{int x,y,z;} s; int *p,*q,*r; struct vector *ps; p = &s.x; q = 阅读全文

posted @ 2013-09-27 13:39 屁屁侠 阅读(266) 评论(0) 推荐(0)

导航