代码改变世界

随笔分类 -  编程语言

计算机体系结构基础

2013-04-11 16:53 by 相涛, 907 阅读, 收藏, 编辑
摘要: 现代计算机都是基于Von Neumann体系结构的,不管是嵌入式系统、PC还是服务器。这种体系结构的主要特点是:CPU(CPU,Central Processing Unit,中央处理器,或简称处理器Processor)和内存(Memory)是计算机的两个主要组成部分,内存中保存着数据和指令,CPU从内存中取指令(Fetch)执行,其中有些指令让CPU做运算,有些指令让CPU读写内存中的数据。本章简要介绍组成计算机的CPU、内存和设备以及它们之间的关系,为后续章节的学习打下基础。内存与地址22042205220622072208220922102211221222132214221522162 阅读全文

编码风格 - indent工具

2013-04-11 16:27 by 相涛, 374 阅读, 收藏, 编辑
摘要: indent工具indent工具可以把代码格式化成某种风格,例如把代码格式化成内核编码风格:$ indent -kr -i8 main.c $ cat main.c#include <stdio.h>#include <stdlib.h>#include <time.h>int main(void){ char gesture[3][10] = { "scissor", "stone", "cloth" }; int man, computer, result, ret; srand(time(NU 阅读全文

编码风格 - 函数

2013-04-11 16:22 by 相涛, 171 阅读, 收藏, 编辑
摘要: 每个函数都应该设计得尽可能简单,简单的函数才容易维护。应遵循以下原则:实现一个函数只是为了做好一件事情,不要把函数设计成用途广泛、面面俱到的,这样的函数肯定会超长,而且往往不可重用,维护困难。函数内部的缩进层次不宜过多,一般以少于4层为宜。如果缩进层次太多就说明设计得太复杂了,应考虑分割成更小的函数(Helper Function)来调用。函数不要写得太长,建议在24行的标准终端上不超过两屏,太长会造成阅读困难,如果一个函数超过两屏就应该考虑分割函数了。[CodingStyle]中特别说明,如果一个函数在概念上是简单的,只是长度很长,这倒没关系。例如函数由一个大的switch组成,其中有非常多 阅读全文

编码风格 - 标识符命名

2013-04-11 16:16 by 相涛, 451 阅读, 收藏, 编辑
摘要: 标识符命名应遵循以下原则:标识符命名要清晰明了,可以使用完整的单词和易于理解的缩写。短的单词可以通过去元音形成缩写,较长的单词可以取单词的头几个字母形成缩写。看别人的代码看多了就可以总结出一些缩写惯例,例如count写成cnt,block写成blk,length写成len,window写成win,message写成msg,number写成nr,temporary可以写成temp,也可以进一步写成tmp,最有意思的是internationalization写成i18n,词根trans经常缩写成x,例如transmit写成xmt。我就不多举例了,请读者在看代码时自己注意总结和积累。内核编码风格规定 阅读全文

参考书列表

2013-04-11 16:05 by 相涛, 270 阅读, 收藏, 编辑
摘要: [ThinkCpp] How To Think Like A Computer Scientist: Learning with C++. Allen B. Downey. [GroudUp] Programming from the Ground Up: An Introduction to Programming using Linux Assembly Language. Jonathan Bartlett. [K&R] The C Programming Language. Brian W. Kernighan和Dennis M. Ritchie. 2. [Standard C 阅读全文

编码风格 - 注释

2013-04-11 16:03 by 相涛, 316 阅读, 收藏, 编辑
摘要: 单行注释应采用/*␣comment␣*/的形式,用空格把界定符和文字分开。多行注释最常见的是这种形式:/*␣*␣Multi-line␣*␣comment␣*/也有更花哨的形式:/*************\* Multi-line ** comment *\*************/使用注释的场合主要有以下几种。1、整个源文件的顶部注释。说明此模块的相关信息,例如文件名、作者和版本历史等,顶头写不缩进。例如内核源代码目录下的kernel/sched.c文件的开头:/* * kernel/sched.c * * Kernel scheduler and related syscal... 阅读全文

编码风格 - 缩进和空白

2013-04-11 15:47 by 相涛, 4210 阅读, 收藏, 编辑
摘要: 1.缩进和空白 我们知道C语言的语法对缩进和空白没有要求,空格、Tab、换行都可以随意写,实现同样功能的代码可以写得很好看,也可以写得很难看。1.1.缺少缩进和空白的代码#include <stdio.h>#include <stdlib.h>#include <time.h>int main(void){char gesture[3][10]={"scissor","stone","cloth"};int man,computer,result, ret;srand(time(NULL));whi 阅读全文