C语言编译器,写给萌新们看看。
就我已经经历过的大学课程,仿佛每一门计算机的专业课程的开头,都是在介绍计算机发展的历史,和大名鼎鼎的冯诺依曼结构。
譬如C语言,比较水的计算机导论,c++,数据结构,计算机组成原理,甚至是Linux实践。
第一次听着可能还新鲜,但久而久之就越来越无聊甚至忘记了具体的内容是什么。我也差不多,所以为了你们更好的理解,专门去看了这么一部电影,《模仿游戏》。
除了能看见超帅的男主角,令人揪心的剧情,还有值得我们这种专业人士注意的,当然就是大名鼎鼎的图灵机。

你能想象我们今天接触的大部分电子设备都是从这玩意儿演变过来的嘛!
所以你要明白,计算机的最底层,其实是非常简单的,就和上图这玩意儿一样。
当然你肯定知道,计算机是使用二进制运行的,也肯定知道那是因为世界上所有可以找到的元器件,能方便表达的就是二进制,比如拿一个电压器,高电压就是1低电压就是0,多方便。
那么自然而然,最开始那批学习计算机的勇士们,都是拿着10101010这样的二进制直接和那笨重的机器打交道,他们拿着长长的纸条,有孔的地方是1,没空的地方是0(还是正好相反来着),总之就是很难对了!
于是一群快累死的程序员动用各自的智慧,发明了汇编语言。
然而汇编语言有多难你肯定知道!
于是又一群快累死的程序员们,发明了高级语言,C语言。
故事讲到这里就结束了,但请你依然把时间线放在十几年前,C语言刚刚发明的那会儿——我们刚刚从使用纸条甚至手摇的机器语言时代,从汇编语言的艰难垦荒走过来。哪里有操作系统Windows啊!
所以,那个时候的我们使用命令行编程。
我猜你可能没办法理解。你使用win+R的组合,在输入cmd,注意不是nmd。
就会看见黑黑的命令行,也是每次你使用VC或者DEV或者任何C语言编译器时,明明那么花花绿绿的界面,一定会蹦出来的那个黑色框框,没错,基本上就是这个了。
那个时候的人们打开电脑就是这种糟心玩意儿。
想看时间怎么办,你输入个time试试。
想听音乐怎么办,对不起,没有。
于是在那种艰苦的情况下,诞生了gcc,因为即使环境再艰苦,我们程序员依然要编辑C语言!
这里我就不给你演示了,因为在Windows上用gcc还要配,我懒得配了。总之就是在这么一个黑不拉几的东西上,C语言完成了从你能看得懂的代码,到机器能看得懂的机器语言10101010。
就跟Windows的诞生一样,那黑色的命令行实在太难看也太难用了。
我们优秀的前辈们,也实在忍不了在gcc上编译运行,出错全靠肉眼输出改bug了。
于是我们有了VC,一只套着VC名称实则还是gcc的狼。
所以其实,Windows和Linux系统用的C语言编译器,都是gcc,只不过你们一般见到的,都是套了壳子的。
看完觉得还行不点个关注?

C语言编译器,写给萌新们看看。的更多相关文章
- 【转】自己动手写SC语言编译器
自序 编译原理与技术的一整套理论在整个计算机科学领域占有相当重要的地位,学习它对程序设计人员有很大的帮助.我们考究历史会发现那些人人称颂的程序设 计大师都是编译领域的高手,像写出BASIC语言的BIL ...
- 萌新学习Python爬取B站弹幕+R语言分词demo说明
代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...
- 手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02
在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源. 之前,我的项目开源在Github上,大家想要用我的项目,还得把 ...
- 致萌新与不会用 NOI Linux 的 OIer
全文绝大部分转载自:这篇好文章啊. 目录 1:GUIDE 2:Gedit 原文 打开 编译运行 3.Vim 3-1:这东西咋开啊 3-2:这东西咋用啊 4.编译与运行 5.调试 6.CSP竞赛中编写代 ...
- C语言编译器CL.exe
下载地址CL.7z版权问题:仅供学习交流,请于24小时内删除,本人不承担版权问题… 基本使用: 1.解压缩,例如解压缩到E盘根目录下 2.打开cmd命令行界面(快捷方式win+R输入cmd回车)cd命 ...
- 我发起并创立了一个 C 语言编译器 开源项目 InnerC
本文是 VMBC / D# 项目 的 系列文章, 有关 VMBC / D# , 见 <我发起并创立了一个 VMBC 的 子项目 D#>(以下简称 <D#>) https: ...
- 萌新web前端从零开始(1)——计算机入门
前言:这是一个萌新从零开始的学习之路,与大家分享自己的看法与见解,还请指出错误与遗漏点方便改正. 1.认识计算机. 计算机语言常见的有C,PHP,Ruby,Java,C#,Basic,JS,C++等, ...
- 萌新笔记之堆(heap)
前言(萌新感想): 以前用STL的queue啊stack啊priority_queue啊,一直很想懂原理,现在终于课上到了priority_queue,还有就是下周期中考,哈哈,所以写几篇blog总结 ...
- 大数据萌新的Python学习之路(一)
笔记开始简介 从2018年9月份正式进入大学的时代,大数据和人工智能的崛起让我选择了计算机专业学习数据科学与大数据技术专业,接触的第一门语言就是C语言,后来因为同学推荐的原因进入了学校的人工智能研究协 ...
随机推荐
- oracle中斜杠(/)的含义
斜杠就是让服务器执行前面所写的sql脚本.如果是普通的select语句,一个分号,就可以执行了.但是如果是存储过程,那么遇到分号,就不能马上执行了.这个时候,就需要通过斜杠(/)来执行. 1 2 3 ...
- SQL 工具系列二
1.RedGate 工具 SQL Prompt 脚步智能提示工具 脚步提示工具,轻松写入,编辑和探索SQL: SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为 ...
- php中cookie的操作
php设置和获取cookie 创建cookie setcookie('mycookie','value',time()+86400);//参数3 cookie过期时间//函数原型:int setcoo ...
- input:checkbox 是否被选中?
<input type="checkbox" id="checkbox1"> <script> $(function(){ $(&quo ...
- the resource is not on the build path of a php project
打开工程里面的.project文件,确保里面的红色标记行都正确且存在,即可成功! <?xml version="1.0" encoding="UTF-8" ...
- 卸载或安装程序出现:The feature you are trying to use is on a network resource ...
卸载或安装程序出现:The feature you are trying to use is on a network resource ... 这种情况可能是因为原先已经安装过这个软件,所以要先卸载 ...
- java 单例的实现及多线程下的安全
package com.demo01; public class Single { /** * 设计模式:单例设计模式 * 解决一个类中只允许存在一个对象这种情况: * 不允许通过类,无限制的创建该类 ...
- 爬虫之lxml - etree - xpath的使用
# 解析原理: # - 获取页面源码数据 # - 实例化一个etree对象,并且将页面源码数据加载到该对象中 # - 调用该对象的xpath方法进行指定标签定位 # - xpath函数必须结合着xpa ...
- javascript获取文件后缀名
javascript获取文件后缀名:在需要验证文件格式的时候,首先就要获得文件的格式,下面是一个通过正则表达式获取文件后缀名的一个简单实例. function validate(){ var impo ...
- vue中数组删除,页面没重新渲染
创建一个组件时,数据类型是数组,在删除这个数组中的数据时,数组中的数据是对的,但页面渲染的数据却不对. 举例:(不一定复现) <ul> <li v-for="(item, ...