回头再看C语言-iOS之而今迈步从头越(一)

关于目前比较流行的编程语言的一个情况来看,到2014年8月之前,大体上的结果是:

*数据来自网络

名列三甲的分别是:C,Java,Objective-C,从这个表里面可以看出,C语言在编程界还是被普遍的认为非常重要的,并且作为很多大学计算机系的必修基础科目之一,可见C语言还是非常有群众基础的.

话再说回到iOS开发上来,因为苹果系统基本都是使用Objective-C(后面简称为OC)来做第一语言来使用的,但在一些深处的机制(比如运行时runtime)以及图像处理以及通讯录访问方面,还是会经常使用C语言的方式来完成,因此,如果能够熟练理解C语言的一些知识,对于新手来说,日后学习OC也会有锦上添花的效果,对于老鸟,也可以当作温故知新的提醒,甚至那些代码大神们,也会偶尔的利用C语言来完成一些高难度问题的处理工作(比如漏洞破解之类),因此闲言少叙,还是开始C语言回顾的第一步吧.

1.关于语言的名字

即便是许多熟练使用C语言进行开发的程序猿们,可能至今也不了解C语言的名字的由来(当然,这并不影响他们写出非常优秀且优美的代码),但给一门语言起个名字,它重要的程度不亚于给一个新生儿赋予姓氏.在C语言来到这个世间之前,也是苦经磨难的,因为它是一个失败实验的产物,随时都有可能被当作废品直接处理.难得的是Dennis Ritchie(丹尼斯.里奇)慧眼独具的发现这门语言的潜力价值,使得这门语言在日后编程界大方异彩,而这丹尼斯.里奇也因此被称为C语言之父,关于丹尼斯里奇的生平,大家可以各自搜索资料,本文不作过多描述.

当时一门语言的命名,完全是没有太多想法的,正是基于这点,因此当C语言面世的时候,大家也没有感觉意外,因为在C语言之前,已经有一门语言叫做B语言,出于英文字母的顺序,新出现的这个语言,就顺理成章的叫C语言了.如果不是因为C语言的几乎奠定了现代程序设计语言的基础,后面再出现一门语言,非常有机会叫D语言,正是由于C语言作为基础,导致其他后面的语言,都是在C语言的基础上改进修正,因此命名都或多或少的保留了对C语言的尊重,比如C++,OC,C#等,从名字上看,他们都与C有着或远或近的血缘关系.

C语言代码的简捷高效以及可移植性都使得这个名不见经传的后起之秀,迅速受到程序爱好者们的热情追捧,以至于出现了各种不同版本的C语言,这个在与B语言问世的时候,情况非常近似,但因为有了前车之鉴,避免出现各种不一致的事情,美国国家标准研究所,制定了规范的C语言版本,使得C语言在后续的日子里,茁壮成长起来.

时间: 2024-10-27 07:02:24

回头再看C语言-iOS之而今迈步从头越(一)的相关文章

透过现象看本质——回头再看Nginx(进程模型、异步非阻塞、源码目录结构)

透过现象看本质--回头再看Nginx Nginx的进程模型 ? 使用过nginx的朋友都知道nginx的性能很高,而其原因可能少有人知.首先,nginx的架构就奠定了其高性能的基础.那么就先来看看nginx的基础架构吧,如下图所示:(不能完全理清楚所有内容也没关系,因为本小节讲述的主要内容是Nginx的进程模型) ? 本小节先来说说Nginx基础架构中的进程模型: ? 所谓进程模型,即Nginx响应请求或服务时程序运行(机器执行指令集)的方式,一般在nginx服务启动后,在Unix系统中会以da

zoj 3634 Bounty hunter(dp,没完全想清楚,需要回头再看_20151027)

M - Bounty hunter Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Description Bounty hunter is a hero who always moves along cities to earn money by his power. One day he decides to N cities one by one At the

回头再看N层架构(图解)

不知不觉来博客园已经快两半了,时间过的真快. 这次的目标是再回顾一下传统的N层架构并且分析一下在DDD中的N层架构. 一.先来看一看传统的N层架构 N-层架构的出现,主要是由于观注点的分离而产生,这三层中BL层的职责一般比较难理清,具体请看下图. 接下来我们关注一下层间交互(分离出角色与职责以后,如何交互将成为架构或模式的主要特征) 然而在实际项目中我们也会出现这样的状况 这里存在一个反模式 二.传统的N层架构与DDD中N层架构的关系 三.分层架构的一个重要原则是:每层只能与位于其下方的层发生耦

再看c语言-算法

通常一个程序包括算法.数据结构.程序设计方法及语言工具和环境这四个方面.其中算法是核心,算法就是解决“做什么”和“如何做”的问题.算法是程序的灵魂,项目中如果接到一个模块的设计,重要的就是考虑这个模块的算法,怎么去做,如何去做的问题. 算法的特性:(1)有穷性:一个算法必须在执行有穷步后结束,每一步都在有穷的时间内完成,避免出现死循环. (2)确定性:每一步都应该有确切的定义,对于每一个过程都不能有二义性,将要执行的每一个动作都必须做出严格而清楚的规定. (3)可行性:算法中的每一步都应该能有效

雄关漫道真如铁,而今迈步从头越

今天考试. 300分... 好恶心的分数...从来没有这么差... 总结如下: 1.大多数人丢分的自己也丢了.这个没什么好说的.主要在细节,比如输入会不会溢出,蜗牛爬墙了那道题蜗牛白天爬的高度与墙高的关系(若蜗牛白天爬的高度大于墙高,则一天就可以爬完,输出'1'即可:若最后一天时蜗牛白天能爬上去,则少需要一天!!) 2.题目看错..最不该丢的分..心疼...最简单的一道题,男生女生人数总和大于10,而我理解成男生人数和女生人数各大于10...wtf!唉以后要认真审题... 考试已经过去,不会做的

雄关漫步真如铁 而今迈步从头越

经历了近一个月的迷茫,纠结,随着这几日北京的霾日渐轻了许多,我渐渐恢复了往日的神采.想进步一些,上进一些,继续追寻年少的梦想. 废话少说,计划如下. 1. 以学精C++为目的. 每天更新一个C++的知识点. 2. 不受语言限制.捡起来曾经熟悉的python. 3. 每天一篇博文,不许写心情. 不管是学习还是生活,都简单,高效...

再看“笕实智慧校园”——作品的复盘[1]

这几个月因为学业繁重,加上准备省机器人竞赛的原因,没能经常写博客. 在学军的这几个礼拜,觉得自己还是学到了不少的. 如今,再看当年的笕实智慧校园工程(http://www.cnblogs.com/pityhero233/p/7246862.html),只觉得多了不少可以改进的地方. 一个基于python和pcduino的智慧校园系统,本着开(zhuang)源(bi)的精神可以用来借鉴.233. 运行在pcduino上的,需要搭配一些元件. 现在,接触到了各种板子.除了pcduino和现在已经被满

ios学习笔记图片+图片解释(c语言 oc语言 ios控件 ios小项目 ios小功能 swift都有而且笔记完整喔)

下面是目录其中ios文件夹包括了大部分ios控件的介绍和演示,swift的时完整版,可以学习完swift(这个看的是swift刚出来一周的视频截图,可能有点赶,但是完整),c语言和oc语言的也可以完整的学习完所需知识,,其他文件夹的内容如其名说描述一样 没张图片都有文字说明,可以需要该功能的时候搜索一下然后打开图片就可以学习到 网盘下载地址:需要的话给留言我再传上去 http://www.cnblogs.com/langtianya原创 ios学习笔记图片+图片解释(c语言 oc语言 ios控件

【C】 01 - 再学C语言

"C语言还用再学吗?嵌入式工程师可是每天都在用它,大家早就烂熟于心,脱离语言这个层面了".这样说不无道理,这门古老的语言以其简单的语法.自由的形式的而著称.使用C完成工作并不会造成太大困扰,所以很少有人会回头再仔细看看它.但在现实中却经常会有一些令人抓狂的bug,最终发现竟是语法使用错误造成的,而作者不乏老程序员.仔细想想,其实每个人对C都有些含糊不清的地方,C好像又变得复杂起来.但事实却不是这样,C语言依然是简洁的,它的语法只需几页纸便可讲清.回想起来,其实是我们学得太过匆忙.太过功