C 语言学习的第 02 课:C 语言的开发环境
工欲善其事,必先利其器。不知道还是不是记得上一篇文章中说到的,计算机本身是一个数据输入及输出的设备。所以,为了将你大脑中的各种 idea 输入到电脑,且最终生成能够执行的程序,总是要预备点什么的。
通常来说,C 语言系统应该由 3 个部分构成,分别是:程序的开发环境、C 语言和 C 语言的库。
程序的开发环境
计算机本身是一个数据的输入及输出的设备。编程这一动作,同样是一个数据的输入及输出的设备。通常是输入一些字母,然后生成可以被计算机解释的“exe”文件。所以需要一个能够允许输入的软件(文本编辑器),一个能够将输入的数据转换为计算机能够理解的数据的软件(编译器)。中间的过程较多,一般可以归纳为以下的几步骤:
- 编辑:代码录入到“.c”文件的过程;
- 预处理:在编译“.c”文件之前,要做些额外的操作;
- 编译:将“.c”文件编译为二进制文件;
- 链接:将二进制文件串起来,成为一个可执行文件(“.exe”)。
C 语言本身
计算机中的程序虽然能够帮助你生成计算机能够理解的程序,但是依旧需要遵循一些原则,这一原则,就被称之为“C 语言”(假如你想要和英语语言的人沟通,你只能说英语,即遵循英语的词法,语法,还有一些其他的语言习惯,C 语言也是一样)。只有遵循 C 语言规范写出的文本代码,程序的开发环境才能响应,生成合乎规范的可执行文件。
C语言的库
C 语言的库,贯穿于编写 C 语言的代码和 C 语言程序的执行始终。不知道大家在运行某些程序的时候,是否遇到类似下图中的错误,这种错误就是由于程序运行时的库丢失了(请不要在意 DuiLib.dll是不是使用 C 语言编写的,我也咩知唉)。

C 语言学习的第 02 课:C 语言的开发环境的更多相关文章
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- Android开发学习总结(一)——搭建最新版本的Android开发环境
Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...
- C 语言学习的第 03 课:你的 idea 是怎么变成能够执行的程序的
在上一篇文章中,我们说到,C 语言系统应该由程序开发环境,C 语言本身和 C 语言的库组成.且同时说了程序开发环境做了“编写”,“预处理”,“编译”和“链接”这几件事情.但是细节并没有一一呈现.不知道 ...
- C 语言学习的第 01 课:先来聊聊计算机吧
各位同学,新学期,我就是你们的助教了.我的个人信息,你们的任课老师都已经介绍过了,所以我这里也就不再啰嗦.下面,来聊聊今天的话题:“先来谈谈计算机吧”. 想必看到这个题目,你们大家一定是不愿意点击进来 ...
- c语言学习笔记(1)——c语言的特点
一.c语言概述 1.为什么学习c语言? (1)c的起源和发展 第一代语言:机器语言 1101 第二代语言:汇编语言 add ax,bx; 第三代语言:高级语言 a+b; 结构化:c fortra ...
- C语言学习书籍推荐《C程序设计语言(第2版•新版)》下载
克尼汉 (作者), 等 (作者, 译者), 徐宝文 (译者) 下载地址:点我 <C程序设计语言(第2版•新版)>是由C语言的设计者Brian W.Kernighan和Dennis M.Ri ...
- GO语言学习(十六)Go 语言结构体
Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...
- 一步一步学习Swift之(一):关于swift与开发环境配置
一.什么是Swift? 1.Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用. 2.Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制. 3.Sw ...
- 学习spring1--跟我一起学Spring 3(2)–开发环境配置
http://www.importnew.com/13185.html#spring 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所 ...
随机推荐
- shell脚本变量
既然是变量,自然分变量名和变量值,在使用的时候一定要注意哪些地方需要用变量名,哪些地方需要用变量的值. 自定义变量 shell变量不需要声明,随用随定义,给变量赋值的时候要注意 shell是空格敏感的 ...
- 删除myeclipse下svn用户名和密码
在不同的操作系统下,操作基本类似. 以win7为例 1.进入c:/Users/[你的用户名]/AppData/Roaming/Subversion/auth目录,删除该目录下的所有文件: 2.重启ec ...
- Javascript笔记--Objects
Javascript的简单数据类型包括: 数字,字符串,true/false,null 和undefined. 其他所有值都是对象. 数组是对象,方法也是对象.属性值是除开undefined值以外的 ...
- 单调队列优化DP,多重背包
单调队列优化DP:http://www.cnblogs.com/ka200812/archive/2012/07/11/2585950.html 单调队列优化多重背包:http://blog.csdn ...
- Unity3D所使用的第三方工具
前言 最近在研究Unity3D的结构和原理.关于Unity3D怎么用之类的教程在网上一找一大堆,想看教程之类的就不用看这篇文章了.我想做的是从使用Unity3D所看到的表象(表),摸透其设计原则和组织 ...
- junit 测试及assert的扩张
@Testpublic void method() 测试注释指示该公共无效方法它所附着可以作为一个测试用例. @Beforepublic void method() Before注释表示,该方法必须在 ...
- java 22 - 14 JDK1.5以后的Lock锁
在之前解决线程安全的过程中,虽然我们可以理解同步代码块和同步方法的锁对象问题, 但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁, 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对 ...
- tomcat安装配置.md
tomcat 安装 安装jdk jdk我使用的是oracle的,如果下载请在oracle的官网上下载.或者你也可以使用openjdk,官网在http://openjdk.java.net/. # ta ...
- 微软职位内部推荐-Software Development Engineer
微软近期Open的职位: Job Title: Software Development Engineer Work Location: Suzhou, China The Office 365 Co ...
- 李学斌:论复杂系统中的应用间协作V3
说明 本文主要讨论了巨型复杂业务系统的一种构建思路,力图实现决策意志的快速.准确.一致的下传并简化实施成本提供实施效率.通过全业务领域的即时流程编排,实现全网业务IT系统的快速建设与迭代.本文所讲的方 ...