预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共49页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

华清远见——嵌入式培训专家http://www.farsight.com.cnQQ:313638714 http://shop.embedu.cn “黑色经典”系列之《嵌入式Linux应用程序开发详解》 第3章Linux下的C编程基础 本章目标 在熟悉了Linux常见命令,能够在Linux中熟练操作之后,本章将带领读者学习在Linux 中进行C语言编程的基本技能。学习了本章后,读者能够掌握如下内容。 熟悉Linux系统下的开发环境 熟悉Vi的基本操作 熟练Emacs的基本操作 熟悉Gcc编译器的基本原理 熟练使用Gcc编译器的常用选项 熟练使用Gdb调试技术 熟悉Makefile基本原理及语法规范 熟练使用autoconf和automake来生成Makefile 华清远见<嵌入式Linux应用开发班>培训教材 华清远见——嵌入式培训专家http://www.farsight.com.cnQQ:313638714 http://shop.embedu.cn 3.1Linux下C语言编程概述 3.1.1C语言简单回顾 C语言最早是由贝尔实验室的DennisRitchie为了UNIX的辅助开发而编写的,它是在B 语言的基础上开发出来的。尽管C语言不是专门针对UNIX操作系统或机器编写的,但它与 UNIX系统的关系十分紧密。由于它的硬件无关性和可移植性,使C语言逐渐成为世界上使 用最广泛计算机语言。 为了进一步规范C语言的硬件无关性,1987年,美国国家标准协会(ANSI)根据C语 言问世以来各种版本对C语言的发展和扩充,制定了新的标准,称为ANSIC。ANSIC语言 比原来的标准C语言有了很大的发展。目前流行的C语言编译系统都是以它为基础的。 C语言的成功并不是偶然的,它强大的功能和它的可移植性让它能在各种硬件平台上游 刃自如。总体而言,C语言有如下特点。 ·C语言是“中级语言”。它把高级语言的基本结构和语句与低级语言的实用性结合起 来。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工 作单元。 ·C语言是结构化的语言。C语言采用代码及数据分隔,使程序的各个部分除了必要的 信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语 言是以函数形式提供给用户的,这些函数可方便地调用,并具有多种循环、条件语句控制程 序流向,从而使程序完全结构化。 ·C语言功能齐全。C语言具有各种各样的数据类型,并引入了指针概念,可使程序效 率更高。另外,C语言也具有强大的图形功能,支持多种显示器和驱动器,而且计算功能、 逻辑判断功能也比较强大,可以实现决策目的。 ·C语言可移植性强。C语言适合多种操作系统,如DOS、Windows、Linux,也适合 多种体系结构,因此尤其适合在嵌入式领域的开发。 3.1.2Linux下C语言编程环境概述 Linux下的C语言程序设计与在其他环境中的C程序设计一样,主要涉及到编辑器、编 译链接器、调试器及项目管理工具。现在我们先对这4种工具进行简单介绍,后面会对其一 一进行讲解。 (1)编辑器 Linux下的编辑器就如Windows下的word、记事本等一样,完成对所录入文字的编辑功 能。Linux中最常用的编辑器有Vi(Vim)和Emacs, 华清远见<嵌入式Linux应用开发班>培训教材 《嵌入式Linux应用程序开发详解》——第3章、Linux下的C编程基础QQ:313638714 http://shop.embedu.cn 图3.1编译过程 它们功能强大,使用方便,广受编程爱好者的喜爱。在本书中,着重介绍Vi和Emacs。 (2)编译链接器 编译是指源代码转化生成可执行代码的过程,它所完成工作主要如图3.1所示。 可见,在编译过程是非常复杂的,它包括词法、语法和语义的分析、中间代码的生成和 优化、符号表的管理和出错处理等。在Linux中,最常用的编译器是Gcc编译器。它是GNU 推出的功能强大、性能优越的多平台编译器,其执行效率与一般的编译器相比平均效率要高 20%~30%,堪称为GNU的代表作品之一。 (3)调试器 调试器并不是代码执行的必备工具,而是专为程序员方便调试程序而用的。有编程经验 的读者都知道,在编程的过程当中,往往调试所消耗的时间远远大于编写代码的时间。因此, 华清远见<嵌入式Linux应用开发班>培训教材 华清远见——嵌入式培训专家http://www.farsight.com.cnQQ:313638714 http://shop.embedu.cn 有一个功能强大、使用方便的调试器是必不可少的。Gdb是绝大多数Linux开发人员所使用 的调试器,它可以方便地设置断点、单步