Linux下的C编程基础 pdf

“黑色经典”系列之《嵌入式Linux 应用程序开发详解》

3 章 Linux 下的C 编程基础

本章目标

在熟悉了Linux 常见命令,能够在Linux 中熟练操作之后,本章将带领读者学习在Linux

中进行C 语言编程的基本技能。学习了本章后,读者能够掌握如下内容。

熟悉Linux 系统下的开发环境

熟悉Vi 的基本操作

熟练Emacs 的基本操作

熟悉Gcc 编译器的基本原理

熟练使用Gcc 编译器的常用选项

熟练使用Gdb 调试技术

熟悉Makefile 基本原理及语法规范

熟练使用autoconf 和automake 来生成Makefile

Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

3.1 Linux 下C 语言编程概述

3.1.1 C 语言简单回顾

C 语言最早是由贝尔实验室的Dennis Ritchie 为了UNIX 的辅助开发而编写的,它是在B

语言的基础上开发出来的。尽管C语言不是专门针对UNIX 操作系统或机器编写的,但它与

UNIX 系统的关系十分紧密。由于它的硬件无关性和可移植性,使C 语言逐渐成为世界上使

用最广泛计算机语言。

为了进一步规范C 语言的硬件无关性,1987 年,美国国家标准协会(ANSI)根据C 语

言问世以来各种版本对C 语言的发展和扩充,制定了新的标准,称为ANSI C 。ANSI C 语言

比原来的标准C 语言有了很大的发展。目前流行的C 语言编译系统都是以它为基础的。

C 语言的成功并不是偶然的,它强大的功能和它的可移植性让它能在各种硬件平台上游

刃自如。总体而言,C 语言有如下特点。

C 语言是 “中级语言”。它把高级语言的基本结构和语句与低级语言的实用性结合起

来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工

作单元。

C 语言是结构化的语言。C 语言采用代码及数据分隔,使程序的各个部分除了必要的

信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语

言是以函数形式提供给用户的,这些函数可方便地调用,并具有多种循环、条件语句控制程

序流向,从而使程序完全结构化。

C 语言功能齐全。C 语言具有各种各样的数据类型,并引入了指针概念,可使程序效

率更高。另外,C 语言也具有强大的图形功能,支持多种显示器和驱动器,而且计算功能、

逻辑判断功能也比较强大,可以实现决策目的。

C 语言可移植性强。C 语言适合多种操作系统,如DOS、Windows 、Linux ,也适合

多种体系结构,因此尤其适合在嵌入式领域的开发。

3.1.2 Linux 下C 语言编程环境概述

Linux 下的C 语言程序设计与在其他环境中的C 程序设计一样,主要涉及到编辑器、编

译链接器、调试器及项目管理工具。现在我们先对这4 种工具进行简 介绍,后面会