全部博文(1293)
发布时间:2013-01-07 16:24:57
我不是天生的程序员,也并非天生就喜欢电脑,上高中时也没有想过将来会当程序员,接触电脑纯属偶然--小时候的一个好朋友上大学时选择了电脑专业,为了和这个朋友有更多的“共同语言”我便选择了计算机系。在大学,我略窥电脑世界,开始为之“发烧”;毕业后,开始了一个程序员的职业生涯。从开始写程序到现在快十年了,写过的程序不少。从这些年的风风雨雨中走过来,不能不有些体会。说到体会,最大的体会就是这条路太漫长。一、一辈子有你 苦一点也愿意我没有奢望大家把写程序和文学创作相提并论,但其中的苦楚却不是一个普通用户能够体味的。为了写好一个程序,我们度过太多不眠之夜。有个朋友如此评价道,“写程序简直是......【阅读全文】
发布时间:2013-01-06 13:35:12
1. 小范围的选择一些有用技术,透彻的学习它们,拥抱它们。然后不断的扩展这个范围。2. 理解各种数据结构的优点和缺点,包括它们在内存中和在硬盘上的各自表现。3. 理解各种算法的优点和缺点。4. 了解你的工作领域。关上电脑,去做你的用户们在做的事。5. 有准备,有愿望,有能力在任何时候投入到多种技术层面中。你必须知道表象下的技术原理。在“各个技术层面的掌握程度”和“编程能力”上有着密切的联系。6. 发挥你的想象力。永远都要问,“有更好的方法吗?”跳出常规思维约束。最好的解决方案也许还没有被发现。7. 优秀程序员:我优化代码。更优秀程序员:我设计数据。最优秀程序员:他们的不同之处是什么?8. 正确......【阅读全文】
发布时间:2012-12-24 17:31:39
1.#——字符串假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incldue <stdio.h>#define PSQR(x) printf("the square of" #x "is %d.\n",(x)*(x))int main(void){ int y =4; PSQR(y); &n......【阅读全文】
发布时间:2012-12-13 12:51:57
随着用户程序的执行和结束,系统不断的为其进行分配与回收物理页面,这必然会产生大量的碎片,这些碎片被分成了两类:内部碎片与外部碎片。如下图:那么接下去我们要为程序分配一个3个连续的物理页面显然不可行了,虽然我们实际的物理内存中存在着3个物理页面这么大的空间,这些不连续的物理页面就成为了外部碎片。在linux系统中采用了伙伴算法来解决这个外部碎片的问题。在内核中有一个free_area这个结构体(include/linux/mmzone.h),它表示了内存中的空闲物理页面。结构体代码如下: 点击(此处)折叠或打开struct free_area{ struct l......【阅读全文】