windows环境下的C语言学习

  作为一个小白,学习的最好方法就是随时记录,好记性比不过烂笔头。所以,从今天开始就开始C语言的学习,从头开始,全部记录下来,其次是我这人记性不好,不记下来不行。

学习环境:Windows 7 64bit 旗舰版

编译器:notepad++、vs2013

                                                                                                                        学习之前先要了解C语言的发展历程、标准、特点以及组成。

  C语言是一门通用计算机编程语言,应用广泛。C语言的实际目的是提供一种能已简易方式编译,处理低级存储器,产生少量机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的特性,但仍然保持着良好跨平台特性,以一个标准规可写出的C语言程序可以再千万台电脑中进行编译,其中包括嵌入式处理器(单片机)等。20世纪80年代,由美国国家标准局为C语言制定了一套完整的国际标准语法,成为ANSIC,作为C语言最初的标准。

  发展历史:

  C语言之所以被命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。

  1967年,剑桥大学的Martin Richhards对CPL语言进行了简化,然后就有了BCPL语言

  20世纪60年代,美国AT&T公司贝尔实验室的研究员Ken Thompson想玩一个他自己编写的电子游戏Space Travel。他背着老板,找到一台空闲着的机器PDR-7,但是这台机器没有操作系统,他便自己着手编写了一个,这就是后来的UNIX。

  1970年,贝尔实验室的Ken Thompson,已BCPL语言为基础,设计出简单且很接近硬件的B语言,并且用B语言写出了世界上第一个UNIX操作系统。

  1971年,喜欢玩Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。

  1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。

  1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个"Space Travel",一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。

  在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARCARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译连接成目标二进制文件之后即可运行。

  1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

  

  C语言继续发展,在1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。C89在1990年被国际标准组织ISO(International Organization for Standardization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为“C90”。1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“C99”。在2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为“C11”。

语言标准:

  

K&R C

起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。

ANSI C / C89标准

1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。

1983年,美国国家标准协会(ANSI)成立了一个委员会X3J11,来制定 C语言标准。

1989年,美国国家标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-1989 "Programming Language C"。因为这个标准是1989年通过的,所以一般简称C89标准。有些人也简称ANSI C,因为这个标准是美国国家标准协会(ANSI)发布的。

1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C89标准定为C语言的国际标准,命名为ISO/IEC 9899:1990 - Programming languages -- C  。因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSI C89标准完全等同。

1994年,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C89标准修订版,名叫ISO/IEC 9899:1990/Cor 1:1994,有些人简称为C94标准。

1995年,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C89标准修订版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity,有些人简称为C95标准。

C11标准

2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C语言的新标准,名叫ISO/IEC 9899:2011 - Information technology -- Programming languages -- C ,简称C11标准,原名C1X。这是C语言的第三个官方标准,也是C语言的最新标准。

语言特点:

1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。[10]

2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

4、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOSUNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。

5、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。

时间: 2024-12-19 10:08:49

windows环境下的C语言学习的相关文章

4.1. 如何在Windows环境下开发Python

4.1. 如何在Windows环境下开发Python 4.1. 如何在Windows环境下开发Python 4.1.1. Python的最原始的开发方式是什么样的 4.1.1.1. 找个文本编辑器,新建个.py文件,写上Python代码 4.1.1.2. 打开Windows的cmd,并且切换到对应的python脚本所在目录 4.1.1.2.1. 方法1:手动打开cmd,并cd到对应路径 4.1.1.2.2. 方法2:通过Notepad++的Open current dir cmd 4.1.1.3

RabbitMQ初探【windows 环境下搭建rabbit 环境】

前言 RabbitMQ 是用Erlang 语言编写一种消息队列,故RabbitMQ需要在Erlang语言的基础环境上进行. 官网下载安装文件: https://www.rabbitmq.com/download.html otp_win64_22.0.exe (Erlang的基础环境) rabbitmq-server-3.7.17.exe 安装步骤 windows环境下安装没有什么特别的,就是下一步!!! 个人建议:安装目录尽量不要使用中文或带有空格的目录,避免出现一些不必要的问题. 安装完成启

第一部分:使用iReport制作报表的详细过程(Windows环境下)

提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/文章将会涉及3个方面的内容: 第二部分:使用Jasperreport作为报表控件开发胖客户端报表应用 第三部分:使用Jasperreport作为报表控件开发Web报表应用 1.前言 在网络上可以搜索到很多使用iReport和Jasperreport配合实现各种报表任务的文章,但是我觉得很少有一篇(几乎没有)做一个比较详细的介绍如何使用iReport制作报表的全过程,我所

MinGW在Windows环境下配合命令提示符运行C/C++

http://jingyan.baidu.com/article/4853e1e5787d6b1909f726f8.html 在电脑中配置MinGW环境. 具体参见我的另一篇分享经验--MinGW在Windows环境下的配置: http://jingyan.baidu.com/article/6b97984da0bd8a1ca2b0bf90.html 2 打开命令行提示符. 具体参见我的另一篇分享经验--Windows环境下如何打开命令行提示符 : http://jingyan.baidu.co

Windows环境下IOS APP打包上传AppStore详细流程

现在很多伙伴跨平台开发应用,有些童鞋没有准备苹果机,本文将介绍,如何在Windows系统环境下直接上架APP,不用去搞虚拟机,搞黑苹果等等了,Windows下照样轻轻松松上架iOS APP,没Mac的小伙伴有福了. 下面从七个步骤进行详细介绍! 1.创建唯一标示符App IDs 2.申请发布证书 3.申请发布描述文件 4.iTunes Connect创建App并填写信息 5.选择证书编译打包6.Windows下上传IPA到App Store 7.上传好IPA回到iTunes Connect提交审

Git在windows环境下的使用教程

前言 安装 配置 关于git使用的几个问题 后记 关于代码托管,以前用过vss和svn,看博客或论坛的时候,经常有人提到github,有很多著名的开源软件都托管在github,想来肯定不错(莫笑),当然我使用git并不是它有多么的出名,最主要的还是git免费,想想现在百度开发者平台都好像开始试收费了,果断休了度娘迎娶git,随时随地check自己的代码,想想是多么美妙的一件事啊. 自己动手,丰衣足食,Let's..... 安装 在使用git之前,当然要去github官网注册账号,windows环

Windows环境下使用cygwin ndk_r9c编译FFmpeg

 一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,一步步来.先来讲一下FFmpeg,网上说的很多都是几百年前的,我亲测完美可用 联系我可以直接评论,也可以加我QQ:11635423  二.干货  我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处. 几个概念理解一下:不理解也没关系.用了之后再说慢慢就理解了.主要是因为我们是windows 先是cygwin下的一些概念:        unix st

windows环境下的tensorflow安装

总得要不断跟得上时代与技术的步伐--机器学习终将变革我们的生活.学习与工作,也许就在不久的将来.. 今天兴致所致,准备尝试基于我大google的tensorflow搭建个学习环境,哪天说不定可以教会它玩游戏,亦或可以辅助在游戏开发中搭建一些有意思的关卡,先做积累跟培养兴趣吧.好了,废话不多说,进入正题. 看了不少的环境搭建方法,感觉都比较复杂,按照理解,首先要有python的环境(鉴于在windows环境下貌似只支持64位,最低3.5的版本),选择了python3.5.2的64位版本,可以直接进

【转】Windows环境下Android NDK环境搭建

原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设备.接口.驱动控制的应用开发,不得不使用到本文的NDK开发环境(基于Android源码或内核源码修改),开发语言使用C/C++,NDK开发更接近于Linux开发,需要更多关于Linux应用编程知识.本文就介绍一