《一站式学习C编程》读书笔记(2)

第一章 程序的基本概念

这一章的内容概念性的东西比较多,大家可以随意浏览一下,有个大概印象即可。

1.1 程序和编程语言

程序(Program)告诉计算机应如何完成一个计算任务。专业的定义为:程序由一系列指令(Instruction)组成,指令是指示计算机做某种运算的命令,通常包括以下几类:1.输入(input2.输出(output3.基本运算4.测试和分支 5.循环。

编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。机器语言(Machine Language)和汇编语言(Assembly Language)属于低级语言,直接用计算机指令编写程序。而CC++Java、Python等属于高级语言。

各种体系结构的计算机都要有各自的C编译器,可以把C程序编译成各种不同体系结构的机器指令,这意味着用C语言写的程序只需稍加修改甚至不用修改就可以在各种不同的计算机上编译运行。但是要注意一点,即使在相同的体系结构和操作系统下,用不同的C编译器(或者同一个C编译器的不同版本)编译同一个程序得到的结果也有可能不同,C语言有些语法特性在C标准中并没有明确规定,各编译器有不同的实现,编译出来的指令的行为特性也会有所不同,应该尽量避免使用不可移植的语法特性。

首先用文编辑器写一个C程序,然后保存成一个文件,例如program.c(通常C程序的文件名后缀是.c,这称为源代码(Source Code)或源文件,然后运行编译器对它进行编译,编译的过程并不执行程序,而是把源代码全部翻译成机器指令,再加上一些描述信息,生成一个新的文件,例如a.out,这称为可执行文件,可执行文件可以被操作系统加载运行,计算机执行该文件中由编译器生成的指令,如下图

屏幕快照 2016-07-17 下午9.44.11
1.2 自然语言和形式语言

这节内容个人觉得不重要,所以就不写了

1.3 程序的调试

编程是一件复杂的工作,因为是人做的事情,所以难免经常出错。据说有这样一个典故:早期的计算机体积都很大,有一次一台计算机不能正常工作,工程师们找了半天原因最后发现是一直虫子(Bug)钻进计算机中造成的。从此以后,程序中的错误被叫做Bug,而找到这些Bug并加以纠正的过程就叫做调(Debug)。有时候调试是一项非常复杂的工作,要求程序员概念明确、逻辑清晰、性格沉稳,还需要一点运气。调试的技能我们在后续的学习中慢慢培养,但首先我们要清楚程序中的Bug分为哪几类。

屏幕快照 2016-07-17 下午9.09.10

1.4 第一个程序

首先确定电脑中已经安装了gcc编译器(个人推荐),具体过程百度吧。书中还推荐了其他的编译器,如果不喜欢用gcc的可以用其他编译器。

书中第一个例子是打印“Hello World”,一般编程的书都是这个例子。

首先打开mac电脑中的终端,然后输入

sudo nano hl.c

然后会出现下面的输入框,然后在里面输入我们的第一个程序。

屏幕快照 2016-07-17 下午9.17.10


#include <stdio.h>

/*main:generate some simple output*/

int main(void)

{

    printf(“Hello,world.”);

    return 0;

}

如下:

屏幕快照 2016-07-17 下午9.25.30

然后按control+x >> y >> 回车

然后输入如下命令:

gcc hl.c

./a.out

就会出现以下内容

屏幕快照 2016-07-17 下午9.26.39

gccLinux平台的C编译器,编译后在当前目录下生成可执行文件a.out,直接在命令行输入这个可执行文件的路径就可以执行它。如果不想把文件名叫a.out,可以用gcc-o参数自己制定文件名:


gcc hl.c -o hl

./hl

会出现跟之前一样的效果。

强烈建议在gcc过程中加入-Wall选项,这样会显示一切警告,有助于改正我们的程序

gcc -Wall hl.c
0 Comments
Leave a Reply