1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。

其他语言(如,FORTRAN、Perl、Python、Pascal、LISP、Logo、BASIC)的许多编译器和解释器都是用C语言编写的。

有句话说的好:想拥有自由就必须时刻保持警惕。

除 C语言外还为哪种语言举办过年度混乱代码大赛[1]?

C++几乎是C的超集,这意味着任何C程序差不多就是一个C++程序。学习C语言,也相当于学习了许多C++的知识。

C++在C语言的基础上嫁接了面向对象编程工具(面向对象编程是一门哲学,它通过对语言建模来适应问题,而不是对问题建模以适应语言)。C++几乎是C的超集,这意味着任何C程序差不多就是一个C++程序。学习C语言,也相当于学习了许多C++的知识。

编译器是把高级语言程序翻译成计算机能理解的机器语言指令集的程序。

图1.3 编程的7个步骤

查找并修复程序错误的过程叫调试。

图1.4 编译器和链接器

UNIX C没有自己的编辑器,但是可以使用通用的UNIX编辑器,如emacs、jove、vi或X Window System文本编辑器。

UNIX区分大小写。因此,budget.c、BUDGET.c和Budget.c是3个不同但都有效的C源文件名。

UNIX区分大小写。因此,budget.c、BUDGET.c和Budget.c是3个不同但都有效的C源文件名。但是BUDGET.C是无效文件名,因为该名称的扩展名使用了大写C而不是小写c。

如果使用ls命令列出文件,会发现有一个a.out文件(见图1.5)。该文件是包含已翻译(或已编译)程序的可执行文件。

gcc和clang命令都可以根据不同的版本选择运行时选项来调用不同C标准。 gcc -std=c99 inform.c[3] gcc -std=c1x inform.c gcc -std=c11 inform.c 第1行调用C99标准,第2行调用GCC接受C11之前的草案标准,第3行调用GCC接受的C11标准版本。Clang编译器在这一点上用法与GCC相同。

可以在命令行输入基本名来运行该程序: C>concrete

通常,C编译器生成的中间目标代码文件的扩展名是.obj(也可能是其他扩展名)。与UNIX编译器不同,这些编译器在完成编译后通常不会删除这些中间文件。有些编译器生成带.asm扩展名的汇编语言文件,而有些编译器则使用自己特有的格式。

Windows IDE提供多种选择以满足用户的不同需求。例如,Microsoft Visual Studio提供【Win32控制台应用程序】选项。对于其他系统,查找一个诸如【DOS EXE】、【Console】或【Character Mode】的可执行选项。

你可能会遇到一个问题:在程序执行完毕后,执行程序的窗口立即消失。如果不希望出现这种情况,可以让程序暂停,直到按下Enter键,窗口才消失。要实现这种效果,可以在程序的最后(return这行代码之前)添加下面一行代码: getchar(); 该行读取一次键的按下,所以程序在用户按下Enter键之前会暂停。有时根据程序的需要,可能还需要一个击键等待。这种情况下,必须用两次getchar(): getchar(); getchar(); 例如,程序在最后提示用户输入体重。用户键入体重后,按下Enter键以输入数据。程序将读取体重,第1个getchar()读取Enter键,第2个getchar()会导致程序暂停,直至用户再次按下Enter键。如果你现在不知所云,没关系,在学完C输出后就会明白。到时,我们会提醒读者使用这种方法。

除此之外,书中还会提到控制字符(如,Ctrl+D)。这种写法的意思是,在按下Ctrl键(也可能是Control键)的同时按下D键。

2.解释源代码文件、目标代码文件和可执行文件有什么区别?

3.编程的7个主要步骤是什么? 4.编译器的任务是什么? 5.链接器的任务是什么?

GCC最基本的用法是:gcc [options] [filenames],其中options是所需的参数,filenames是文件名。——译者注 第2章 C语言概述 本章介绍以下内容: 运算符:= 函数:main()、printf() 编写一个简单的C程序 创建整型变量,为其赋值并在屏幕上显示其值 换行字符 如何在程序中写注释,创建包含多个函数的程序,发现程序的错误 什么是关键字 C程序是什么样子的?

GCC最基本的用法是:gcc [options] [filenames],其中options是所需的参数,filenames是文件名。——译者注 第2章 C语言概述 本章介绍以下内容: 运算符:= 函数:main()、printf() 编写一个简单的C程序 创建整型变量,为其赋值并在屏幕上显示其值 换行字符 如何在程序中写注释,创建包含多个函数的程序,发现程序的错误 什么是关键字 C程序是什么样子的?

GCC最基本的用法是:gcc [options] [filenames],其中options是所需的参数,filenames是文件名。——译者注