我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重点说一说如何在Linux环境下用VI编辑器写C程序编译C程序运行C程序。

相信大家在Windows环境下写C程序编译C程序运行C程序怎么弄都已经很清楚了,现在我们来看在Linux下如果来做,不用什么基础,直接跟着我就行了。

在linux下我们可以用VI编辑器来做这些事,VI编辑器是一款由加州大学伯克利分校Bill Joy研究开发的文本编辑器。文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice,文本模式下的编辑器有vi、vim(vi的增强版本)。vi和vim是我们在Linux中最常用的编辑器。vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的。

vi 有三种命令模式

Command(命令)模式,用于输入命令

Insert(插入)模式,用于插入文本

Visual(底行)模式,用于视化的的高亮并选定正文

这三者之间可以通过下图所示的方法进行切换:

等会我们看到后面,如果忘记了怎么切换,那再回到上图来看。这里要说明一下,上图中说的输入iao,是指i,a,o三个字母随便输入一个的意思,不是说要输入iao。然后上图的:wq是指同时输入三个字符:wq,这样就能保存并退出。

如果还是没明白,就按我下面的步骤走一遍就可以理解了。首先,来到linux系统的桌面,用鼠标右键击桌面,如图所示:

然后点击菜单上的“在终端中打开”,于是打开了终端:

打开后,我们输入命令vi test001.c并打回车,这样就打开了VI编辑器并建立一个C语言文件,如下:

打字母i进入编辑模式,开始写代码,比如我们要写一个运算斐波那契数列的程序,如下:

#include<stdio.h>
int Fi(int n)
{
   if(n<1)
      return -1;
   if(n==1||n==2)
      return 1;
   return Fi(n-1)+Fi(n-2);
}
int main()
{
   int count;
   int a;
   printf("please input the count");
   scanf("%d",&count);
   a=Fi(count);
   printf("a=%d\n",a);
   return 0;
}

写入到VI编辑器中就是这样:

好,程序写好了,就按ESC跳出编辑模式,然后打入:wq三个字符再回车进行程序的保存,就是保存到test001.c这个文件里。这时桌面上就会多了一个test001.c的文件。

我们可以双击这个文件打开看看里面是什么,一打开如下:

哈哈,就是我们刚才写的代码。好,我们关掉这个文件,重新来到终端里,我们现在要编译这个程序。如下:

我们输入gcc -o test001 test001.c命令,把test001.c文件编译成一个叫test001的可执行文件。我们这时会发现桌面上多了一个test001的文件,如下图:

你可以右击这个文件看看它的属性,你会发现是一个可执行文件。如果用鼠标直接双击这个文件,会发现一点反应也没有。看来要运行这个文件只能回到终端下。

下面我们来运行这个文件,在终端下打./test001这个命令并回车:

一回车,就会弹出please input the count的语句让你输入一个数字,我输了3,一回车,结果a=2这个结果马上就出来了。这样,一个C程序从编写到编译,再到运行,就完完整整的演示结束了。

在C语言中,main()是主函数,任意一个C程序的入口和出品都位于这个主函数中。其他的功能函数都是在主函数中调用实现的,并不都写在主函数中。定义的功能函数就如同一个变量,需要先声明后定义,函数的声明是让编译器知道函数的名称、参数、返回值类型等基本信息;函数的定义是让编译器知道函数的功能。

上述功能的函数的声明可以写成如下形式:

int Fi(int n);

若将函数的定义放在调用函数之前,就可以省略函数的声明,此时函数的定义就包含了函数声明。

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐