嵌入式全栈开发学习笔记---C语言(在linux上编/译/运行)

本文介绍了Linux环境下的C语言编程基础,包括使用pwd和clear命令,C语言基本框架,vim编辑器操作,以及关于C语言中main函数的必要性的探讨。通过实例演示,展示了即使没有main函数,程序也能在Linux上运行,但需注意指定退出方式。
摘要由CSDN通过智能技术生成

目录

Linux开发者的基本素养-文件分类

补充命令1-pwd(显示出当前目录所在的路径)

补充命令2-clear(清除Linux操作面板)

在Linux上编写C程序

在Linux上编译程序

思考:C语言中一定要main函数吗


我们为什么要学习C语言?学习C语言有助于理解计算机底层工作原理!

后面我们的很多项目也都是用C语言操作的。

说明:我们学过单片机的一般都是有C语言基础的了,网上关于C语言的资料有很多,大家如果对C语言不熟悉的话可以先去详细学一下,再以这篇博文作为复习资料学习。

这篇博文的目的是复习C语言,我们会陆续以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。

注意:由于本专栏是嵌入式全栈开发专栏,为了我们能熟悉以后实际工作中的开发环境,我们写C语言全部在Linux中的vim编辑器中写,这么做事为了我们能够熟练掌握Linux系统的常用命令以及Linux上的vim编辑器的常用工作命令,以达到对口训练的目的!

vim编辑器的一些工作命令在上一篇博文中已经详细介绍过了,如果不了解可以先去看看。

我们正式开始:

首先我们现在Linux终端创建一个文件夹,不知道怎么创建的,可以去翻看本栏目中的Linux基础命令介绍博文。

Linux开发者的基本素养-文件分类

今后我们要在Linux终端进行很多学习,在学习过程中会有很多文件要创建,所以最好是一开始就分类好:

补充命令1-pwd(显示出当前目录所在的路径)

pwd 即 Print Working Directory 打印工作目录,其主要功能是显示目前所在目录,即显示出当前目录所在的路径。

补充命令2-clear(清除Linux操作面板)

如果你的Linux终端敲的这些命令行太多了,可以用clear把它清除掉。

回车就清除了,但是我们只是清除那些命令,我们还是处于清除前所在的目录下

输入vim 1-helloworld.c回车后我们就用vim编辑器打开了1-helloworld.c文件。

现在可以编写C语言代码了。

在Linux上编写C程序

先介绍一下程序编写时会涉及到的一些基础操作:

我们先上C语言的基本框架

如果想要加上注释的话,要在插入模式下进行

如果要在Linux的vim编辑器中输入中文,可以在右上角的这里设置

我们先简单写出打印一个helloworld的程序

在Linux上编译程序

那在vim上写的代码如何编译呢?

我们先保存并退出1-helloworld.c文件 (保存并退出的命令在前面几篇博文中都介绍过了,在这里不再赘述,不懂的可以去翻看一下)

我们用gcc这个工具来编译我们的程序,它是Linux中的一个编译器

注意:敲这段命令的时候千万不要贪图省事用tab键自动补全-o后面的”1-helloworld”,因为这样敲的话它会重新生成一个二进制文件“1-helloworld.c”,这个二进制文件会覆盖掉原来的即-o前面的1-helloworld.c,那我们刚刚写的代码就白写了。

-o就是output输出的意思,那这段命令的意思就是用gcc编译1-helloworld.c文件,输出1-helloworld文件

回车

如果我们的程序没有错误的话,就可以很顺利地编译出来,就会是像上图一样的回车后的结果。

如果程序有bug的话,回车后它就会给出有bug提示

我们可以根据它的提示进行修改程序,再次编译,就好了

编译完成了,就会输出一个1-helloworld二进制文件,我们访问这个文件就能看到程序运行的结果

它的确成功运行并打印出来了一个”helloworld”

思考:C语言中一定要main函数吗

我们来思考一个问题:

main作为程序的入口,C语言中一定要main函数吗?不一定。

我们来验证一下:

我们用vim写打开一个2-nomain.c文件

写一个没有main函数的程序

编译一下看看会不会报错

如果我们按照有main函数的程序的编译命令来写的话就会报错,但是我们如果在命令后面加上“-nostartfiles”即没有开始文件的话,即就不会报错了

虽然这么写它也会报一个警告,但也只是警告warning,不错报错error,我们也看到它已经编译出了一个2-nomain文件了,说明没有main函数它也可以运行。

我访问一下这个2-nomain文件看看能不能成功打印出“helloworld”

的确成功打印出来了。

但是我们还看到它报出“段错误”

这是因为没有main函数,程序运行结束后,不知道退回到哪里去,

一般像这种没有main函数的程序我们要指定它退出的方式。

exit就是退出的意思

我们再次编译一次看看

这样它就没有“段错误”警告了。

没有main函数它也正常输出了,但是这样的代码没有意义,上面只是为了验证一下。

以上验证的结果就是没有main函数的程序在Linux上也是能够运行的。

以上就是这篇内容,如想了解更多,欢迎订阅本专栏!

如有问题可评论区或者私信留言,如果想要进交流群请私信!

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vera工程师养成记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值