本文是在看《C语言程序设计——现代方法》第二章的笔记。程序员
指令:在编译操做前修改程序的编辑命令。express
这个指令
让我感受这是将构建工具的部分职责加入到程序源代码中。由于像条件编译
这些指令作的事情,我我的以为本应是构建工具的事情。ide
在编译C程序以前,预处理器会根据指令对C程序进行编辑。全部指令都是以#
开始的。函数
函数:被命名的可执行代码块。工具
函数的超集就是C程序。函数分为两类:布局
术语“函数”来源于数学。在数学中函数是一条根据一个或多个给定参数进行数值计算的规则。编码
C程序至少包含一个main函数。在执行程序时系统会自动调用main函数。main函数是一个程序的入口。main的名称是规定死的,且区分大小写。设计
疑问code
为何执行程序时系统会自动调用main函数?是由于C编译器编译时将main函数解析到纸带的开始处。纸带指老一辈程序员将代码打成有孔的纸带来执行。好心的同窗可否解答下?blog
疑问
“函数(function)”和“方法(method)”这两个概念之间的区别又是?
语句:程序运行时执行的命令。
语句的超集就是函数。语句必须以分号结束。为何呢?由于语句能够连续占用多行,因此很难肯定它的结束位置,所以用分号来向编译器显示语句的结束位置。
疑问
强制每条语句使用分号结尾,这是编译器不够智能仍是?
变量:表明数据的存储空间。
程序通常会执行一系列的计算,所以须要在程序执行过程当中有一种临时存储数据的方法。一种办法就是找一个地方
来存这些临时数据。这个地方
本质上是内存或磁盘等存储介质。可是咱们程序员在写代码时总要考虑应该将这个临时数据存储到500G日立磁盘上的第2000仍是第3000的位置上吧?这时,就创建起一个抽象概念:变量(variable)。变量实际就是存储介质的一块空间。在使用变量时,你不须要再考虑这个变量所映射到的介质空间在哪。而变量名则是给这个空间起一个名字,便于人阅读。与街道上的门牌号的做用相似。
类型:用来讲明变量所存储的数据的种类。一般咱们说变量的类型,而不是说数据的种类
由于数据又分不少种:数字、字符、二进制……因此,就有了类型
的概念,而编译器根据类型来生成最终机器执行的机器码。若是类型不正确,生成的机器码执行起来固然会出问题。(我的凭感受推理,不表明事实)。
类型会影响变量的存储方式以及容许对变量采起的操做。
在使用变量以前必须对其进行声明,这也是为了便于编译器工做
疑问
为何在使用变量以前必定要声明?若是编译器足够聪明,是否是不须要使用前申明?
声明变量的格式:变量类型 变量名
。如int height
,int为变量类型,height为变量名。
必须把声明放置在使用它的语句前:
main(){ 声明 语句 }
赋值是一种动做即将数据存入存储介质中,也就是将数据存入变量中。
一般状况下,赋值运算的右侧能够是一个含有常量、变量和运算符的公式(也就是表达式,expression)。
变量所映射到空间不必定就是空的(用0来填满的)。极可能是已经存在数据的。按我以前的经验,若是初始化的成本不大,尽可能对每一个变量进行初始化。
我在看别人源码的时候,发现初始化有两种风格:
int height = 8, length = 12, width = 10; int height = 8; int length = 12; int width = 10;
第一种更简短,第二种更可读。如何权衡看本身。
为获取输入,使用scanf函数,输出时则使用printf。scanf和printf的字母f 都是“格式化”的意思。这两个函数都须要使用格式串来讲明输入或输出数据的样式。就是指用户必须使用scanf规定的格式输入,不然会出错。而输出要按指定的格式输出就很容易理解了。
常量(constant)是在程序执行过程当中固定不变的量。
当程序含有常量时,建议给这些常量命名。这正是提升代码可读性的方法。
在C中定义常量须要使用指令
。这个指令就是宏定义(macro definition):#define。如:
#define CUBIC_IN_PER_LB 166
我的理解:宏定义就是在预编译期进行“替换”,因此,某个C文件中全部的“CUBIC_IN_PER_LB”标识符都会被替换为“166”。而“标识符”的含义在下一节说明。
注意:大多数C程序员都遵循的常量名规范是常量名都只用大写字母。
在编写程序时,须要对变量、函数、宏和其余实体进行命名。这些名字称为标识符(identifier)。
合法的标识符能够是字母、数字和下划线,但必须以字母或者下划线开头。标准C对标识符的最大长度没有限制。
C语言是区分大小写的。
关键字
有些词对编译器而言有特殊意义,这些词不能做为标识符来使用。这些词称为关键字(keyword)。
注意:某些词对某个编译器是关键字,而对于另外一个编译器则可能不是关键字。
这个就没有什么好说的,我以为是编码规范问题。能够在团队层面或公司层面进行统一。在看过这篇文章前,我是不同意统一编码规范。若是感兴趣,你也能够看看!