重学C语言 一些基本概念
来源:互联网 发布:淘宝联盟ios版 编辑:程序博客网 时间:2024/06/08 12:13
今天又买了一辆捷安特OCR3300,之所以说又,那就是之前丢了一辆,2400块大洋啊,郁闷痛苦了很久,今天痛下决心,又买了一辆,古语叫做续弦,还买了两把锁,前面一个,后面一个,这样能稍微保险一点,整体的负重稍微增加了一些,但是安心了,上次丢车子就是因为对公司门前的安全状况太大意了,以为有保安又有监控,可惜啊,警匪一家的状态在朝阳区是常见的,编造的破案故事,堕落的天上人间,嗯,不说了,还望客官们引以为戒。
C语言由代码到可执行程序的通常分三步:预处理、编译、链接。
预处理的过程是由预处理器完成的,预处理的过程相当于对C源文件进行最后一次代码填充或修改,这些填充或修改的规则在源代码里是以#号开头的,预处理的功能极为灵活强大,后面(如果我能坚持到那时候)会仔细介绍。
编译:经过预处理的文件下一步就是进入编译器,它会把源代码转换为目标代码(也就是机器码)和连接器信息,这个过程就是编译,有本伟大著作叫编译原理,有空可以参考一下。
链接的作用在这本《C语言程序设计现代方法》中文版里解释的很含混,鄙视那些唯利是图的叫湿叫兽,链接器主要实现两个功能:
- 解析未定义的符号引用,将目标文件中的占位符替换为符号的地址。
- 将程序中各目标文件的地址空间的组织,这可能涉及重定位工作。
说白了就是告诉处理器,怎么样使用这些机器码。
C语言的注释
首先说一下注释的作用,注释不仅仅是可以标注一行代码或者一个函数,也可以标记一个文件或者一处修改,这就是注释伟大的地方,可以提高代码的可读性和可维护性。
再说一下注释的形式,C语言里有两种
- C89里定义的
1
/*This is the only type which is supported in C89*/
优点是可以注释多行,缺点是必须有一个结尾,如果结尾的*/漏掉的话,这个注释就会延续到下一次*/的出现。
- C99里添加了另外一种注释方法
1
//This is added in C99.
这种注释目前来看是使用最广的一种方式,他的优点是作用域尽在一行,这样就避免了C89注释的缺点。
到底是用哪种注释方法,这要看具体环境而定了。
和变量相关的内容
在程序执行的过程中,总是遇到需要临时存储的结果(从广义上来说,程序里面都是变量不管是函数,常量,还是类),变量就是给存放这些值用的。
一般的变量都是保存在内存中的一块空间,所以在使用变量的时候要做一件事,告诉内存需要什么种类的空间,这里说的种类,就是类型。把这个两个小内容联合起来,就是下面的操作--声明:
int result;
这句话告诉编译,给我们一块int大小叫做result的内存空间。
- 关于声明C89与C99也有一些不同,C89中要求声明必须在开始进行函数调用之前完成,而C99则放宽了这种要求,只要在变量使用前声明就可以了。这同样也涉及到了兼容问题。
赋值与初始化
result=100;
这样的一个过程就是赋值,很简单。
当声明的同时,给变量赋值就是初始化:
int result=100;
初始化是可选的,最好是养成初始化的习惯,这样或许可以较少一些后期的隐患。
常量和常量的名字
当程序还有常量的时候,建议给这些常量一个名字,这样,常量就会有一个明确的含义,可以采用宏定义的特性来给给常量命名。
1
#define ERROR 100
2
3
result=ERROR;
// result=100
这里的#define是预处理命令,当编译时预处理器会把每一个宏替换为其表示的值。
- C程序里有一个延续几十年的规范,变量使用小写字母与下划线的方式命令(this_is_variable),宏的名字用大写字母与下划线组成(THIS_IS_MACRO)。
下载英文原版 请以留言方式留下您的邮箱
中文版购买链接:C语言程序设计:现代方法(第2版)
原文链接:http://www.demosir.com/%E9%87%8D%E5%AD%A6c%E8%AF%AD%E8%A8%80-%E4%B8%80%E4%BA%9B%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html
- 重学C语言 一些基本概念
- C语言重学的一些笔记。
- 重学C语言
- 重学C语言
- 重学c语言_1
- 重学c语言_2
- 重学c语言_3
- C语言:C语言的一些基本概念
- C语言概述【重学C之一】
- 十年之后重学C语言
- 重学C语言之指针
- 重学C语言 — C语言概述
- 学c语言的一些建议
- 重学C语言 基本的格式化输入输出
- 重学c语言系列一(gcc编译过程)
- 重学c语言系列二---(变量)
- 重学C语言(一) 字符串数组输出
- 2016.12.13重学C语言记录篇--1
- JAVA JAR文件包及jar命令详解
- 第七讲__I/O
- 查询SQL错误日志扩展存储过程xp_readerrorlog
- SQLServer2005数据库日志文件损坏的情况下如何恢复数据库
- 该依赖项是项目系统添加的,不能移除。
- 重学C语言 一些基本概念
- SqlServer 数据库行转列的sql语句
- 用固定点解猴子分桃子问题
- 对数导数的推导
- 对数变换公式的推导
- 用e编制对数表
- 用e编制对数表2
- 差分数列中的对数螺线性质
- 网上商城后台架构设计