第3章、Linux下C编程基础

上传人:我*** 文档编号:133322933 上传时间:2020-05-26 格式:PDF 页数:51 大小:952.28KB
返回 下载 相关 举报
第3章、Linux下C编程基础_第1页
第1页 / 共51页
第3章、Linux下C编程基础_第2页
第2页 / 共51页
第3章、Linux下C编程基础_第3页
第3页 / 共51页
第3章、Linux下C编程基础_第4页
第4页 / 共51页
第3章、Linux下C编程基础_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《第3章、Linux下C编程基础》由会员分享,可在线阅读,更多相关《第3章、Linux下C编程基础(51页珍藏版)》请在金锄头文库上搜索。

1、 嵌入式学院 华清远见旗下品牌 www embedu org 嵌入式学院 华清远见旗下品牌 www embedu org 嵌入式 Linux 应用程序开发标准教程 第 3 章 Linux 下 C 编程基础 嵌入式学院 华清远见旗下品牌 www embedu org 第 3 章 Linux 下 C 编程基础 本章目标 本章将带领读者学习在 Linux 中进行C语言编程的基本技 能 学习了本章后 读者能够掌握如下内容 熟悉 Linux 系统下的开发环境 熟悉 vi 的基本操作 熟练 emacs 的基本操作 熟悉 gcc 编译器的基本原理 熟练使用 gcc 编译器的常用选项 熟练使用 gdb 的调试

2、技术 熟悉 makefile 基本原理及语法规范 熟练使用 autoconf 和 automake 生成 makefile 嵌入式 Linux 应用程序开发标准教程 第 3 章 Linux 下 C 编程基础 嵌入式学院 华清远见旗下品牌 www embedu org 3 1 Linux 下 C 语言编程概述 3 1 1 C 语言简单回顾 C 语言最早是由贝尔实验室的 Dennis Ritchie 为了 UNIX 的辅助开发而编写的 它是在 B 语言的基础上开发出来的 尽管 语言不是专门针对 UNIX 操作系统或机器 编写的 但它与 UNIX 系统的关系十分紧密 由于它的硬件无关性和可移植性 使

3、 C 语言逐渐成为世界上使用最广泛的计算机语言 为了进一步规范 C 语言的硬件无关性 1987 年 美国国家标准协会 ANSI 根据 C 语言问世以来各种版本对 C 语言的发展和扩充 制定了新的标准 称为 ANSI C ANSI C 语言比原来的标准 C 语言有了很大的发展 目前流行的 C 语言 编译系统都是以它为基础的 C 语言的成功并不是偶然的 它强大的功能和它的可移植性让它能在各种硬件平 台上游刃自如 总体而言 C 语言有如下特点 1 C 语言是 中级语言 它把高级语言的基本结构和语句与低级语言的实用 性结合起来 C 语言可以像汇编语言一样对位 字节和地址进行操作 而这三者是计 算机最基

4、本的工作单元 2 C 语言是结构化的语言 C 语言采用代码及数据分隔 使程序的各个部分除 了必要的信息交流外彼此独立 这种结构化方式可使程序层次清晰 便于使用 维护 以及调试 C 语言是以函数形式提供给用户的 这些函数可方便地调用 并具有多种 循环 条件语句控制程序流向 从而使程序完全结构化 3 C 语言功能齐全 C 语言具有各种各样的数据类型 并引入了指针的概念 可使程序效率更高 另外 C 语言也具有强大的图形功能 支持多种显示器和驱动器 而且计算功能 逻辑判断功能也比较强大 可以实现决策目的 4 C 语言可移植性强 C 语言适合多种操作系统 如 DOS Windows Linux 也适合多

5、种体系结构 因此尤其适合在嵌入式领域的开发 3 1 2 Linux 下 C 语言编程环境概述 Linux 下的 C 语言程序设计与在其他环境中的 C 程序设计一样 主要涉及编辑器 编译链接器 调试器及项目管理工具 现在我们先对这 4 种工具进行简单介绍 后面 会对其一一进行讲解 1 编辑器 Linux 下的编辑器就如 Windows 下的记事本 写字板等一样 完成对所录入文字 的编辑功能 Linux 中最常用的编辑器有 vi vim 和 emacs 它们功能强大 使用方便 深受编程爱好者的喜爱 在本书中 着重介绍 vi 和 emacs 2 编译链接器 编译是指源代码转化生成可执行代码的过程 它

6、所完成的主要工作如图 3 1 所示 嵌入式 Linux 应用程序开发标准教程 第 3 章 Linux 下 C 编程基础 嵌入式学院 华清远见旗下品牌 www embedu org 图 3 1 编译过程 可见 编译过程是非常复杂的 它包括词法 语法和语义的分析 中间代码的生 成和优化 符号表的管理和出错处理等 在 Linux 中 最常用的编译器是 gcc 编译器 它是 GNU 推出的功能强大 性能优越的多平台编译器 其执行效率与一般的编译器 相比平均效率要高 20 30 3 调试器 调试器并不是代码执行的必备工具 而是专为方便程序员调试程序而用的 有编 程经验的读者都知道 在编程的过程当中 往往

7、调试所消耗的时间远远大于编写代码 的时间 因此 有一个功能强大 使用方便的调试器是必不可少的 gdb 是绝大多数 Linux 开发人员所使用的调试器 它可以方便地设置断点 单步跟踪等 足以满足开 发人员的需要 4 项目管理器 Linux 中的项目管理器 make 有些类似于 Windows 中 Visual c 里的 工程 它是一种控制编译或者重复编译软件的工具 另外 它还能自动管理软件编译的内容 方式和时机 使程序员能够把精力集中在代码的编写上而不是在源代码的组织上 3 2 常用编辑器 3 2 1 进入 vi Linux 系统提供了一个完整的编辑器家族系列 如 Ed Ex vi 和 emac

8、s 等 按功 能它们可以分为两大类 行编辑器 Ed Ex 和全屏幕编辑器 vi emacs 行编辑 器每次只能对一行进行操作 使用起来很不方便 而全屏幕编辑器可以对整个屏幕进 嵌入式 Linux 应用程序开发标准教程 第 3 章 Linux 下 C 编程基础 嵌入式学院 华清远见旗下品牌 www embedu org 行编辑 用户编辑的文件直接显示在屏幕上 从而克服了行编辑那种不直观的操作方 式 便于用户学习和使用 具有强大的功能 vi 是 Linux 系统的第一个全屏幕交互式编辑程序 它从诞生至今一直得到广大 用户的青睐 历经数十年仍然是人们主要使用的文本编辑工具 足以见其生命力之 强 而强

9、大的生命力是其强大的功能带来的 由于大多数读者在此之前都已经用惯 了 Windows 平台上的编辑器 因此 在刚刚接触时总会或多或少不适应 但只要习 惯之后 就能感受到它的方便与快捷 1 vi 的模式 vi 有 3 种模式 分别为命令行模式 插入模式及命令行模式 下面具体介绍各 模式的功能 1 命令行模式 用户在用 vi 编辑文件时 最初进入的为一般模式 在该模式中用户可以通过上下 移动光标进行 删除字符 或 整行删除 等操作 也可以进行 复制 粘贴 等 操作 但无法编辑文字 2 插入模式 只有在该模式下 用户才能进行文字编辑输入 用户按 ESC 可键回到命令行模 式 3 底行模式 在该模式下

10、 光标位于屏幕的底行 用户可以进行文件保存或退出操作 也可以 设置编辑环境 如寻找字符串 列出行号等 2 vi 的基本流程 1 进入 vi 即在命令行下键入 vi hello 文件名 此时进入的是命令行模式 光标位于屏幕的上方 如图 3 2 所示 图 3 2 进入 vi 命令行模式 嵌入式 Linux 应用程序开发标准教程 第 3 章 Linux 下 C 编程基础 嵌入式学院 华清远见旗下品牌 www embedu org 2 在命令行模式下键入 i 进入插入模式 如图 3 3 所示 可以看出 在屏幕底 部显示有 插入 表示插入模式中的输入状态 在该模式下可以输入文字信息 图 3 3 进入 v

11、i 插入模式 3 最后 在插入模式中 按 Esc 键 则当前模式转入命令行模式 并在底 行行中输入 wq 存盘退出 进入底行模式 如图 3 4 所示 这样 就完成了一个简单的 vi 操作流程 命令行模式 插入模式 底行模式 由 于 vi 在不同的模式下有不同的操作功能 因此 读者一定要时刻注意屏幕最下方的提 示 分清所在的模式 嵌入式 Linux 应用程序开发标准教程 第 3 章 Linux 下 C 编程基础 嵌入式学院 华清远见旗下品牌 www embedu org 图 3 4 进入 vi 底行模式 3 vi 的各模式功能键 1 命令行模式常见功能键如表 3 1 所示 表 3 1 vi 命令

12、行模式功能键 功 能 键 功 能 i 切换到插入模式 在目前的光标所在处插入输入的文字 已存在的文字会向 后退 a 切换到插入模式 并从目前光标所在位置的下一个位置开始输入文字 o 切换到插入模式 且从行首开始插入新的一行 ctrl b 屏幕往 后 翻动一页 ctrl f 屏幕往 前 翻动一页 ctrl u 屏幕往 后 翻动半页 ctrl d 屏幕往 前 翻动半页 0 数字 0 光标移到本行的开头 G 光标移动到文件的最后 nG 光标移动到第 n 行 移动到光标所在行的 行尾 n 光标向下移动 n 行 name 在光标之后查找一个名为 name 的字符串 name 在光标之前查找一个名为 na

13、me 的字符串 x 删除光标所在位置的一个字符 X 删除光标所在位置的前一个字符 dd 删除光标所在行 ndd 从光标所在行开始向下删除 n 行 yy 复制光标所在行 nyy 复制光标所在行开始的向下 n 行 p 将缓冲区内的字符粘贴到光标所在位置 与 yy搭配 u 恢复前一个动作 2 插入模式的功能键只有一个 即按 Esc 键可回到命令行模式 3 底行模式常见功能键如表 3 2 所示 表 3 2 vi 底行模式功能键 功 能 键 功 能 w 将编辑的文件保存到磁盘中 嵌入式 Linux 应用程序开发标准教程 第 3 章 Linux 下 C 编程基础 嵌入式学院 华清远见旗下品牌 www em

14、bedu org q 退出 vi 系统对做过修改的文件会给出提示 q 强制退出 vi 对修改过的文件不作保存 wq 存盘后退出 w filename 另存一个名为 filename 的文件 set nu 显示行号 设定之后 会在每一行的前面显示对应行号 set nonu 取消行号显示 注意 vim 是 vi 的升级版 与 vi 相比扩展了很多功能且保持与 vi 的 90 相兼容 感 兴趣的读者可以查看相关资料进行学习 3 2 2 初探 emacs 正如前面所述 vi 是一款功能非常强大的编辑器 它能够方便 快捷 高效 地完成用户的任务 那么 在此再次向读者介绍另一款编辑器是否多此一举呢 答案是

15、否定的 因为 emacs 不仅仅是一款功能强大的编译器 而且是一款融合编 辑 编译 调试于一体的开发环境 虽然 它没有 Visual Studio 一样绚丽的界面 但是它可以在没有图形显示的终端环境下出色的工作 相信追求强大功能和工作 效率的用户不会介意它朴素的界面的 emacs 的使用和 vi 截然不同 在 emacs 里 没有类似于 vi 的 3 种 模式 emacs 只有一种模式 也就是编辑模式 而且它的 命令全靠功能键完成 因此 功能键也就相当重要了 但 emacs 却还使用一个不同 vi 的 模式 它的 模式 是指各种辅助环境 比 如 当编辑普通文本时 使用的是 文本模式 Text

16、Mode 而当写程序时 使用的 则是如 c 模式 shell 模式 等 下面 首先介绍一下 emacs 作为编辑器的使用方法 以帮助读者熟悉 emacs 的环 境 注意 emacs 缩写注释 C 表示按住 Ctrl 键的同时键入字符 因此 C f 就表示按住 Ctrl 键 同时键入 f M 表示当键入字符时同时按住 Meta 或 Edit 或 Alt 键 通常为 Alt 键 1 emacs 安装 现在较新版本的 Linux 如本书中所用的 Red Hat Enterprise 4 AS 的安装光盘中 一般都自带有 emacs 的安装包 用户可以通过安装光盘进行安装 一般在第 2 张光盘 中 2 启动 emacs 安装完 emacs 之后 只需在命令行键入 emacs 文件名 若缺省文件名 也可 在 emacs 编辑文件后另存时指定 也可从 编程 emacs 打开 如 3 5 图所示 的就是从 编程 emacs 打开的 emacs 欢迎界面 嵌入式 Linux 应用程序开发标准教程 第 3 章 Linux 下 C 编程基础 嵌入式学院 华清远见旗下品牌 www embedu org 图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号