前言:

1、本系列教程适用于刚开始学习 C 语言的同学,或者初级开发者,或者想系统详细了解 C 语言的小伙伴。

2、本系列教程会从C语言基础到 C 语言高级语法,包含 C 语言所有系列。

C语言简介

什么是 C 语言

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管 C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C 语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称 MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订立了一套完整的国际标准语法,称为 ANSI C,作为 C 语言最初的标准。

简单来说:C 语言是一门简单的编程语言,C 语言的语法标准由美国国家标准局指定。C 语言有很多底层处理功能,而且有良好的跨平台性。

C 语言的优势

C 语言发展至今很多当时的优势,到现在已经不是什么优势,但是有几个点目前还是其他高级语言所不能媲美的:

1、运行效率:C 语言可以直接对内存和硬件进行操作,C 语言具有很多直接访问物理地址的功能,可以直接访问内外存储器,还可以进行各种位操作。

2、可移植性好:目前大部分硬件和常用的操作系统都支持C 语言开发,因此如果使用C语言开发软件,移植性特别高,基本不用修改,可以在其他系统平台上运行。这个是其他高级语言很难单独做到的

3、语法简单,语言简洁:C 语言是目前程序设计中规模最小的语言之一,关键字很少,总共才32个关键字。而且语法比较简单,会点简单英语的同学,都能看懂一些基本语法。

C 语言是面向过程的,运行过程是一步一步的,很像我们平常做事情似得,第一步干什么,第二步干什么,等等。。。

所以前期理解起来也比较简单。

程序

什么是程序?

程序是一组具有完成特定任务或者功能的计算机指令。首先为了完成特定功能,其次是一组计算机指令(代码)。

程序执行过程

程序的执行过程是:预编译 — 编译 — 汇编 — 链接 — 执行

预编译:也叫预处理阶段,预处理器会把源程序中的 # 开头的命令替换掉,直接插入到程序文本中,最后生成另外一个 C 程序,通常是以 .i 作为文件扩展名。

编译:这个阶段编译器会把 .i 文件编译成一个汇编语言程序(.s文件)。汇编语言是非常有用的,它为不同高级语言的不同编译器提供了通用的输出语言。

汇编:这个阶段就是把汇编语言打包成一个二进制文件,也就是说到了这一步才完成了从高级语言到机器语言的转化。这个阶段的代码已经是二进制文件了(.o文件),如果我们打开这个 .o 文件,我们将会看到一堆乱码。

链接:到了这个阶段,就是把所有的所有的 .o 文件合并到一起来完成一个可执行文件,也就是把每个独立功能的文件合并到一起,然后被加载到内存,由系统执行。

编辑器和编译器

编辑器:什么是编辑器呢?就是写代码用的工具,注意只是写代码用的,比如记事本就是编辑器,word 也是编辑器,sublime 也是编辑器。

有人会问那么它在程序执行过程当中属于哪个阶段呢?

答:还没有在其中任何一个阶段。咱们用编译器主要是为了写代码。

编译器:上面已经说了,编译器就是把 .i 文件编译成一个汇编语言程序。这种编译器是指狭义上的编译器。

和汇编器、链接器都是同级别的工具。我这里讲的编译器是指广义上的编译器,在这里大家只需记住这里所讲的编译器是包含了:编辑器、预编译器、编译器、汇编器、链接器的复合型编译器,我们只需使用这样一个工具就可以完成程序的编写到执行的过程。

对于热爱编程的人来说,有一群一起学习的小伙伴很重要!如果你感兴趣或者有需求的话,笔者的专栏有一个编程零基础入门学习交流俱乐部,还有学习视频文件,欢迎初学者和正在进阶中的小伙伴们!

c语言最小点对问题_C语言教程(一):程序开发理论基础!相关推荐

  1. vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt

    第1章_C语言概述(vc环境如何运行c语言程序)[精选] C语言程序设计 授课对象:电子商务06 时间安排: 理论课(1-9周): 星期一 5-6节 9407D 星期三 5-6节 9410D 实验课( ...

  2. c语言prime函数怎么用_C语言 要发就发

    点击上方"蓝字"关注我们 愉快的一天,不得不做的三件事: 种田,锄地,整代码!!! [题目] "1898--要发就发".请将不超过1993的所有素数从小到大排成 ...

  3. c语言n次方怎么输入_C语言实现斐波拉契数列

    C语言实现斐波拉契数列教程 怎么使用 C 语言实现计算斐波拉契数列的第 N 项的值? C语言实现斐波拉契数列详解 背景知识 斐波那契数列是一组第一位和第二位为 1,从第三位开始,后一位是前两位和的一组 ...

  4. c语言prime函数怎么用_C语言教程_v20201106

    编程基础 1.1    通俗地理解什么是编程语言 1.2    C语言究竟是一门怎样的语言? 1.6    初中毕业能学会编程吗? 1.7    C和C++到底有什么关系? 1.8    学了 C 语 ...

  5. c语言string函数的用法_C语言基础| 指针和函数

    点击蓝字关注我们 指针和函数 栈帧:当函数被调用时,系统会在stack空间上申请一块内存,用来给函数提供空间,存储形参和局部变量(定义在函数内部的变量). 当函数调用结束时,这块内存空间会被自动释放( ...

  6. c语言代码大全表解释_C语言常用错误代码释义大全,值得收藏!

    对于刚学编程,刚接触C++的新手来说,编译运行报错是最头疼的一件事,爆出一堆英文,英语差一点的又不知道什么意思,所以也不知道如何去改,在此,我给大家传一份常见错误中英文对照表及简单解释,希望可以帮到大 ...

  7. c语言设置输出字符大小_C语言中常用的几个头文件及库函数

    点击上方"C语言中文社区",选择"设为星标★" 技术干货第一时间送达! 来源:https://www.jb51.net/article/124594.htm 这 ...

  8. c语言连续生成不同随机数_C语言随机数生成教程,C语言rand和srand用法详解

    在实际编程中,我们经常需要生成随机数,例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌. 在C语言中,我们一般使用 头文件中的 rand() 函数来生成随机数,它的用法为: int ran ...

  9. 语言const的生命周期_C语言的角落——这些C语言不常用的特性你知道吗?

    变长参数列表 头文件定义了一些宏,当函数参数未知时去获取函数的参数 变量:typedef va_list 宏: va_start() va_arg() va_end() va_list类型通过stda ...

最新文章

  1. FPGA(5)数码管静态显示与动态显示
  2. JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...
  3. 服务器磁盘状态,宝塔面板:服务器状态“磁盘100%”标红 解决方法
  4. 数据基本类型以及相关举例
  5. 发布在即!.NET Core 1.0 RC2已准备就绪
  6. 我们研究了1.5万场活动,换个大城市生活可能对你有用
  7. Js中Date的应用
  8. mysql keepalived主从_mysql高可用架构之(一)基于自身主从复制&keepalived实现
  9. 教程-Delphi资源文件(全面分析于使用)
  10. 施一公:论文和科技实力是两回事,大家千万要分开
  11. ami编码设计流程图_AMI码型变换
  12. JAVA爬取网站查询网络IP所在地
  13. 宝宝专业智力测试软件,儿童医院心理科做智商检测-儿童智力测试仪_儿童注意力测试仪_儿童综合素质测试仪/测评系统...
  14. 枚举,联合,宏定义,结构体
  15. 【c#】DGV中复制粘贴数据最详细代码
  16. bzoj 1503 (权值线段树)
  17. 微信小程序个性头像、国庆头像、新年头像、圣诞头像等合成
  18. 下载Gazebo模型
  19. faster R-CNN中anchors 的生成过程(generate_anchors源码解析)
  20. anytime you feel the pain,hey,dear,refrain

热门文章

  1. 网络资产管理系统_RFID固定资产管理系统_企业资产管理方案
  2. 辽宁地质工程职业学院计算机应用技术,辽宁地质工程职业学院10大好就业专业推荐...
  3. VHDL基本门电路和数值比较器的设计
  4. 基于FPGA的直流电机PWM控制+毕业论文
  5. qt插件元数据不包含一个有效的元数据_qt creator源码全方面分析(2-10-2)
  6. html 常见hack,针对主流浏览器的CSS-HACK写法及IE常用条件注释
  7. html折叠菜单列子,基于Vue.js+bootstrap4的左侧可伸缩式菜单
  8. android uid systemui,(android)system ui 内存优化
  9. java 12错误_Java异常处理的12条军规总结
  10. photos怎么改成中文_Win10怎么设置中文语言?Win10设置语言为中文的方法图解