- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 Linux程序设计基础
本章学习目标
通过对本章的学习,读者应该掌握以
下主要内容:
Ø Linux编程风格
Ø Linux下IDE的使用
Ø Linux下使用GNU gcc开发应用程序
Ø Linux程序的调试
Ø Linux下软件打包
5.1 概述
5.1.1 Linux编程
Linux软件开发一直在Internet环境下讲行。这个环境
是全球性的,编程人员来自世界各地。只要能够访问Web
站点,就可 以启动一个 以Linux为基础 的软件项 目。
Linux开发工作经常是在Linux用户决定共同完成一个项
目时开始的。当开发工作完成后,该软件就被放到
Internet站点上,任何用户都可以访问和下载它。由于
这个活跃的开发环境,新的以Linux为基础的软件功能日
益强大,而且呈现爆炸式的增长态势。
大多数Linux软件是经过自由软件基金会(Free
Software Foundation)提供的GNU(GNU 即 GNU’s not
UNIX)公开认证授权的,因而通常被称作GNU软件。GNU
软件免费提供给用户使用,并被证明是非常可靠和高效
的。许多流行的Linux实用程序如C编译器、shell和编辑
器都是GNU软件应用程序。
5.1.2 Linux编程风格
1.GNU风格
(1)函数返回类型说明和函数名分两行放置,函数起始字符和函数
开头左花括号放到最左边。
(2)尽量不要让两个不同优先级的操作符出现在相同的对齐方式中,
应该附加额外的括号使得代码缩进可以表示出嵌套。
(3)按照如下方式排版do-while语句:
(4)每个程序都应该以一段简短的说明其功能的注释开头。
(5)请为每个函数书写注释,说明函数是做什么的,需要哪些入口
参数,参数可能值的含义和用途。如果用了非常见的、非标准的东西,
或者可能导致函数不能工作的任何可能的值,应该进行特殊说明。如
果存在重要的返回值,也需要说明。
(6)不要声明多个变量时跨行,每一行都以一个新的声明开头。
(7)当一个if中嵌套了另一个if-else时,应用花括号把if-else括起来。
(8)要在同一个声明中同时说明结构标识和变量或者结构标识和类
型定义(typedef)。先定义变量,再使用。
(9)尽量避免在if的条件中进行赋值。
(10)请在名字中使用下划线以分割单词,尽量使用小写;把大写字
母留给宏和枚举常量,以及根据统一惯例使用的前缀。例如,应该使
用类似ignore_space_change_flag的名字;不要使用类似
iCantReadThis的名字。
(11)用于表明一个命令行选项是否给出的变量应该在选项含义的说
明之后,而不是选项字符之后被命名。
2.Linux 内核编程风格
(1)Linux内核缩进风格是8个字符。
(2)Linux内核风格采用KR标准,将开始的大括号放在一行的最后,
而将结束的大括号放在一行的第一位。
(3)命名尽量简洁。不应该使用诸如
ThisVariableIsATemporaryCounter之类的名字。应该命名为tmp,这
样容易书写,也不难理解。但是命名全局变量,就应该用描述性命名
方式,例如应该命名“count_active_users()”,而不是“cntusr()” 。
本地变量应该避免过长。
(4)函数最好短小精悍,一般来说不要让函数的参数多于10个,
否则应该尝试分解这个过于复杂的函数。
(5)通常情况,注释说明代码的功能,而不是其实现原理。避免把
注释插到函数体内,而写到函数前面,说明其功能,如果这个函数的
确很复杂,其中需要有部分注释,可以写些简短的注释来说明那些重
要的部分,但是不能过多。
5.2 IDE使用
5.2.1 VIM编辑器
1.VIM的简介
VI是Linux世界里最常用的全屏编辑器,所有的Linux机器都提供该编
辑器,而Linux里提供的是VI 的加强版——VIM ,但同VI是完全兼容。VI 的
原意是“visual interface”,即可视编辑器,用户键入的内容
文档评论(0)