您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文档 > 项目一:初识一个简单的C程序Hello World!
主要内容1.嵌入式Linux下C语言概述2.嵌入式Linux编辑器vi3.嵌入式Linux编译器gcc4.项目设计与实施一、嵌入式Linux下C语言简介Linux是能够自由传播并继承了UNIX内核的操作系统,是对UNIX的简化和改进,它既保留了UNIX系统的高安全性,同时也使其操作更加简单方便,从而使单机用户也可以使用。UNIX内核指的是操作系统底层的核心程序代码。Linux是由芬兰的赫尔辛基大学(Helsinki)学生LinusTorvalds把Minix系统向x86移植的结果。1.Linux简介2.问什么要在Linux平台下学习C语言C语言是一种面向底层的编程语言,要写好C程序,必须对操作系统的工作原理非常清楚,因为操作系统也是用C写的,我们用C写应用程序直接使用操作系统提供的接口。Linux是一种开源的操作系统,你有任何疑问都可以从源代码和文档中找到答案,即使你看不懂源代码,也找不到文档,也很容易找个高手教你。而Windows是一种封闭的操作系统,除了微软的员工别人都看不到它的源代码,只能通过文档去猜测它的工作原理。3.怎样在Linux系统中C语言编程环境Linux环境下的C语言程序从编写到执行同样要经过编写,编译和调试的步骤,和Windows不同的是,这个过程不是在一个集成好的IDE平台中完成,而是设计到了Linux系统中的四种工具:(1)编辑器Linux下的编辑器和Windows中的记事本或者Word类似,本书中用到的是Vi编辑器,主要完成的工作就是对程序及文本的录入进行编辑。(2)编译器在Linux中最常用的编译器是GCC编译器,主要功能是将C、C++语言源程序和目标程序编译、连接成可执行文件。(3)调试器方便程序员调试,能够帮助程序员找出编译时错误的位置,提供程序中错误的线索,节省程序调试时间。因此一个功能强大实用方便的调试器是必不可少的。(4)项目管理器嵌入式Linux中的项目管理器“make”类似于VisualC++下的“工程”,它是控制编译或者重复编译软件的工具对源代码的编译顺序等进行管理和组织。二、嵌入式Linux编辑器vi(visualinterface)是linux系统中的可视化编辑器。vi可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。vi只是一个文本编辑器,不能排版。vi编辑器没有菜单,只有命令。vi有三种基本工作模式,分别是:命令模式(commandmode)、插入模式(insertmode)和底行模式(lastlinemode)各模式的功能区分如下:(1)命令行模式(commandmode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insertmode下,或者到lastlinemode。(2)插入模式(Insertmode)1.Vi简介只有在Insertmode下,才可以做文字输入,按「ESC」键可回到命令行模式。(3)底行模式(lastlinemode)将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。一般我们在使用时把vi简化成两个模式:命令行模式和插入模式。将底行模式(lastlinemode)也算入命令行模式。2.Vi的基本操作(1)进入vi编辑器(2)切换至插入模式(Insertmode)编辑文件(3)Insert的切换(4)退出vi及保存文件3.命令行模式实用功能键(1)删除文字‘x’:每按一次,删除光标所在位置的后面一个字符。‘#x’:例如,6x表示删除光标所在位置的后面6个字符。‘X’:大写的X,每按一次,删除光标所在位置的前面一个字符。‘#X’:例如,‘20X’表示删除光标所在位置的前面20个字符。‘dd’:删除光标所在行。‘#dd’:从光标所在行开始删除#行(2)复制‘yw’:将光标所在之处到字尾的字符复制到缓冲区中。‘#yw’:复制#个字到缓冲区‘yy’:复制光标所在行到缓冲区。‘#yy’:例如,‘6yy’表示拷贝从光标所在的该行往下数6行文字。‘p’:将缓冲区内的字符贴到光标所在位置。注意:所有与y有关的复制命令都必须与p配合才能完成复制与粘贴功能。(3)回复上一次操作‘u’:如果误执行一个命令,可以马上按下回到上一个操作。按多次u可以执行多次回复。(4)跳至指定的行‘ctrl’+‘g’列出光标所在行的行号。‘#G’:例如,‘15G’,表示移动光标至文章的第15行行首。4.LastLinemode下命令简介在使用‘lastlinemode’之前,请记住先按‘ESC’键确定您已经处于‘commandmode’下后,再按‘:’冒号即可进入‘lastlinemode’。(1)列出行号‘setnu’:输入‘setnu’后,会在文件中的每一行前面列出行号。(2)跳到文件中的某一行‘#’:#号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。(3)查找字符‘/关键字’:先按‘/’键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按‘n’会往后寻找到您要的关键字为止。‘?关键字’:先按‘?’键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按‘n’会往前寻找到您要的关键字为止。(4)保存文件‘w’:在冒号输入字母‘w’就可以将文件保存起来。三、嵌入式Linux编译器gcc虽然称gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。1.Gcc的执行过程2.Gcc基本用法和选项gcc最基本的用法是∶gcc[options][filenames]如:gcchello.c-omain其中“-o”就是options,是编译器所需要的参数,“main”是filenames,给出相关的文件名称。-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-ooutput_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。就相应地要慢一些。-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。-O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度在使用C语言库函数时,要用预编译指令“#include”将有关的“头文件”包括到用户源文件中。在头文件中包含了与用到的函数相关的信息。如本程序中用到了标准输入输出函数,要用到“stdio.h”文件。#include命令都是放在程序的开头,因此这类文件被称为“头文件”。1.头文件介绍四、项目设计和准备2.输出函数scanf和printf这两个函数分别称为格式输入函数和格式输出函数。其意义是按指定的格式输入输出值。因此,这两个函数在括号中的参数表都由以下两部分组成:“格式控制串”,参数表格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。在printf函数中还可以在格式控制串内出现非格式控制字符,这时在显示屏幕上将原文照印。参数表中给出了输入或输出的量。当有多个量时,用逗号间隔。例如:printf(sineof%lfis%lf\n,x,s);其中%lf为格式字符,表示按双精度浮点数处理。它在格式串中两次现,对应了x和s两个变量。其余字符为非格式字符则照原样输出在屏幕上。3.环境搭建在个人PC机上安装VMwareWorkstation,用此虚拟机加载RedHat9.0或其他版本的Linux操作系统的镜像文件。搭建这样的平台,就可以方便的在虚拟机上运行linux系统,进行LinuxC编程的学习。4.项目实施1.启动Linux操作系统。2.使用vi编辑器编写“HelloWorld!”程序。3.使用gcc编译器进行编译,调试。4.任务4:执行程序。5.命令行模式实用功能键(1)删除文字‘x’:每按一次,删除光标所在位置的后面一个字符。‘#x’:例如,6x表示删除光标所在位置的后面6个字符。‘X’:大写的X,每按一次,删除光标所在位置的前面一个字符。‘#X’:例如,‘20X’表示删除光标所在位置的前面20个字符。‘dd’:删除光标所在行。‘#dd’:从光标所在行开始删除#行(4)跳至指定的行‘yw’:将光标所在之处到字尾的字符复制到缓冲区中。‘#yw’:复制#个字到缓冲区‘yy’:复制光标所在行到缓冲区。‘#yy’:例如,‘6yy’表示拷贝从光标所在的该行往下数6行文字。‘p’:将缓冲区内的字符贴到光标所在位置。5.命令行模式实用功能键(3)回复上一次操作‘u’:如果误执行一个命令,可以马上按下回到上一个操作。按多次u可以执行多次回复。(4)跳至指定的行‘ctrl’+‘g’列出光标所在行的行号。‘#G’:例如,‘15G’,表示移动光标至文章的第15行行首。
本文标题:项目一:初识一个简单的C程序Hello World!
链接地址:https://www.777doc.com/doc-3786979 .html