C语言前瞻

C语言基础简介

  关于C语言的书籍,文章有很多。C的历史我不赘述,只讲C语言的基础语法和使用,帮助大家入门,同时也是自己学习过程的一个回顾。
  首先,C语言是一门编译性语言。简单介绍下什么是编译性语言。我们学习的编程语言由机器语言->低级语言->高级语言演变。机器语言全是2进制的0101编写的,一般人根本看不懂,再往下的就是汇编语言,人类可以看懂,但是还不够简单,因为它跟硬件的耦合比较高,基本上换一套硬件平台就要换汇编指令,对开发者来说不太友好。再往后就是现在的高级语言。高级语言大致分为两种:
  + 编译性语言:比如C,C++
  + 解释性语言:比如Python,shell
编译性语言:编写的程序在执行之前有一个编译的过程,将高级语言文件编译成机器语言文件,在由计算机执行机器语言文件。一般我们使用的C语言编译器是gcc,MinGW等。
  + 优点:因为执行的过程中 无需重新编译 所以执行效率相对较高
  + 缺点:依赖编译器的类型及版本,跨平台性较差
解释性语言:不需要在执行前先编译,而是在执行的过程中,由解释器一行一行的将源代码翻译成二进制给计算机处理。
  + 优点:跨平台性相对较好
  + 缺点:每次执行都需要逐行翻译,执行效率相对较低。

编译方式

分布编译

  介绍一下C语言编译的过程,分为四个步骤:

  • 预处理
  • 编译
  • 汇编
  • 链接
      每个步骤执行不同的操作,需要不同的指令,分别是:
  • 预处理:将头文件展开,删除注释,宏定义替换
gcc -E xxx.c -o xxx.i
  • 编译:检查语法,将.i文件翻译成汇编文件
gcc -S xxx.i -o xxx.s
  • 汇编:将汇编文件生成目标文件
gcc -c xxx.s -o xxx.o
  • 链接:链接库文件,生成可执行文件
gcc xxx.o -o xxx

示例流程

在这里插入图片描述
  这是在终端的一个示例流程,红框中圈中的是执行的四条指令,黄框是执行指令后的文件夹中的文件。初始只有一个Test.c,最后一步生成了文件APP,注意的同学会发现,其他文件是白色,只有APP是绿色的,因为它是一个可执行的文件,类似于应用程序。
  每个指令后面的-o xxx。实际上的效果只是给生成后的文件命名,如果没有这个,编译的文件名就是默认的。

一步编译

  上面的步骤有没有觉得比较麻烦,还要记不同的指令。其实,还有另一种编译的方式,一步编译。顾名思义,只要一不就可以编译完成。下面给大家介绍以下这个语法。

gcc xxx.c -o xxx

在这里插入图片描述
  看一下是不是只要一步就生成了可执行的文件,而且中间产生的那些 .i .s .o问价你都没有了。是不是比较方便呢,前期的时候为了解整个过程,还是建议先使用分布编译,后期熟练了可以使用一步编译(其实后面可能使用集成的软件根本不需要敲指令了,比如:Vs Code)。

代码运行

  当根据上面步骤生成可执行程序时,使用执行指令或者使用装好的工具运行即可。

./xxx

运行结果展示

在这里插入图片描述

实际代码

  下面把我在这个文章中的C程序中敲的代码给大家粘贴出来,可以先试着自己运行一下。

#include <stdio.h>
int main(int argc, const char *argv[])
{
	printf("hello world\n");
	return 0;
}
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值