当前位置: 首页 > news >正文 quot 网站建设话术 quotwordpress 首页调用文章 news 2025/10/23 5:29:31 quot 网站建设话术 quot,wordpress 首页调用文章,为网站开发android客户端,品牌网站制作选哪家| 导语 C 的起源可以追溯到 40 年前#xff0c;但它仍然是当今使用最广泛的编程语言之一#xff0c;C发明人Bjarne Stroustrup 一开始没想到 C 会获得如此大的成功#xff0c;他说#xff1a;“C 的成功显然令人惊讶。我认为它的成功取决于其最初的设计目标#xff0c;就是…| 导语 C 的起源可以追溯到 40 年前但它仍然是当今使用最广泛的编程语言之一C发明人Bjarne Stroustrup 一开始没想到 C 会获得如此大的成功他说“C 的成功显然令人惊讶。我认为它的成功取决于其最初的设计目标就是有效的使用硬件再加上强大的抽象机制以及它根据来自实际使用情况的反馈进行谨慎的发展”。 目录 C历史背景 C历史背景 C 编程语言的历史可以追溯到1979年当时Bjarne Stroustrup为博士学位论文进行了一些开发。在Stroustrup可以使用的所有单词中有一种被称为Simula的语言顾名思义它可能是一种主要为仿真而设计的语言。Simula 67语言是Stroustrup使用的变体被认为是支持面向对象编程范例的主要语言。Stroustrup发现这种范例对包装开发很有帮助。但是Simula语言对于实践和实际使用而言太慢了 随后不久Bjarne Stroustrup希望通过支持面向对象范例来增强C。他深入研究了Smalltalk的OO实现以获取有关实现的想法。但是他不愿意为此放弃性能因此他开始从事“C with Classes (带有类的C ”的工作希望C 代码运行时应具有与C代码相似或更好的性能。 第一个带有类别编译器的C称为Cfront它是从称为CPre的C编译器派生而来的。它曾经是一个旨在将带有类别代码的C转换为通用C的程序。值得注意的目的是Cfront主要是用C用类编写的从而创建了一个自举的编译器可以自行编译的编译器 。Cfront后来在1993年被放弃但是Cfront对未来的编译器和Unix操作系统的实现产生了巨大影响。 1983年语言的名称从“带有类的C”更改为C 。C语言中的运算符是用于递增变量的运算符它使您可以深入了解Stroustrup如何看待该语言。在此期间添加了许多新功能其中最引人注目的是虚函数函数重载带有符号的引用const关键字和使用两个正斜杠的单行注释。 1985年Stroustrup引用了名为“ C 编程语言”的语言。已出版。同年C 被实现为商业产品。该语言尚未正式标准化因此使该书成为非常重要的参考。该语言在1989年再次进行了更新以包括受保护的成员和静态成员以及从多个类的继承. 1990年发行了《带注释的C 参考手册》。同年Borland的Turbo C 编译器将作为商业产品发布。Turbo C 添加了许多其他库这些库会对C 的开发产生相当大的影响。尽管Turbo C 的最后一个稳定版本是2006年但该编译器仍被广泛使用。 1998年C 标准委员会发布了第一个C ISO / IEC 148821998国际标准其非正式名称为C 98。据说《带注释的C 参考手册》对标准的制定产生了很大的影响。还包括标准模板库该模板库于1979年开始概念开发。2003年该委员会对1998年标准所报告的多个问题做出了回应并对其进行了相应的修订。更改的语言称为C 03。 2005年C 标准委员会发布了一份技术报告称为TR1详细介绍了他们计划添加到最新C 标准中的各种功能。新标准被非正式地称为C 0x因为它有望在第一个十年结束之前的某个时间发布。具有讽刺意味的是新标准要到2011年年中才会发布。直到那时为止已经发布了几份技术报告并且一些编译器开始为新功能添加实验性支持。 2011年中新的C 标准称为C 11完成。Boost库项目对新标准产生了重大影响其中一些新模块直接来自相应的Boost库。一些新功能包括正则表达式支持全面的随机化库新的C 时间库原子支持标准线程库 一种新的for循环语法提供的功能类似于某些其他语言中的foreach循环auto关键字新的容器类对联合和数组初始化列表以及可变参数模板的更好支持。 2014年C 14也称为C 1y作为C11的一个小扩展发布主要功能是错误修复和小的改进国际标准投票程序草案于2014年8月中完成加强lambda函数constexpr和类型推导特性 2017年发布C17标准C17提供了很多东西。增强了核心语言和库 2020年发布C20标准推出了很多重量级功能其中比较重要 Concepts概念改变了我们思考和编程模板的方式。它们是模板参数的语义类别。它们使您可以直接在类型系统中表达您的意图。如果出了什么问题您会收到清晰的错误消息。 Ranges library新的ranges库使它可以直接在容器上执行算法用管道符号组成算法并将其应用于无限数据流。 Coroutines由于协程C 中的异步编程成为主流。协程是协作任务事件循环无限数据流或管道的基础。 Modules模块克服了头文件的限制。他们承诺很多。例如头文件和源文件的分离变得和预处理器一样过时了。最后我们有更快的构建时间和更轻松的构建软件包的方法。 Concurrency Atomic Smart Pointers, Joining Cancellable Threads, The C20 Synchronization Library增强了C并发编程能力 总结一下C标准演进路线如下图 从C发展历史背景来看C产生的根本原因有两点 面向对象编程 Bjarne Stroustrup研究Simula OOP编程思想觉得这个是应对大型软件开发的绝佳武器拥有很好的现实抽象能力和代码组织能力 高性能Bjarne Stroustrup准备开发一套通信系统需要编写接近硬件的低级代码例如内存管理器、进程调度器和设备驱动程序来分离软件组件由于当时计算机硬件性能限制对软件性能要求苛刻广泛使用的C语言有比较接近硬件工作的能力所以Bjarne Stroustrup基于C语言创造可以面向对象编程的C语言 推荐学习 《An Overview of the C Programming Language》Bjarne Stroustrup 《Design and Evolution of C》Bjarne Stroustrup C面向对象编程 怎么才能深刻理解面向对象思想 面向对象程序设计的雏形早在1960年的Simula语言中即可发现当时的程序设计领域正面临着一种危机在软硬件环境逐渐复杂的情况下软件如何得到良好的维护面向对象程序设计在某种程度上通过强调可重复性解决了这一问题。20世纪70年代的Smalltalk语言在面向对象方面堪称经典——以至于30年后的今天依然将这一语言视为面向对象语言的基础。 维基百科: 面向对象程序设计英语Object-oriented programming缩写OOP是种具有对象概念的编程典范同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码与方法。对象则指的是类class的实例。它将对象作为程序的基本单元将程序和数据封装其中以提高软件的重用性、灵活性和扩展性对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里计算机程序会被设计成彼此相关的对象。 面向对象编程就是通过对象把现实世界映射到计算机模型的一种编程方法是抽象思维的一种体现。而抽象是计算机科学中最重要的一种思维方式 面向对象方法的本质就是主张从客观世界固有的事物出发的构造系统提倡用人类在现实生活中常用的思维方法来认识、理解和描述客观事物具体实现采用对象为基础对象是面向对象方法中最基本的概念。对象可以用来表示客观世界中的任何实体它既可以是具体的物理实体的抽象也可以是人为的概念或者是任何有明确边界和意义的东西 程序的本质是人的意志延伸到计算机的可识别的指令。计算机CPU仅能识别 01代码本身不能解决任何问题无意识只能由人编写程序控制计算机解决问题因此编程的本质就是人“教会”计算机解决问题。 面向对象的编程技术有助于减小这一隔阂、并使这两个空间尽量趋于一致; 抽象思维一直推动着计算机技术不断向前发展科学技术本身就是现实世界的抽象和演绎 电路信号-01二进制-指令汇编-高级编程-模块设计-框架设计-单机系统-分布式系统--云计算 推荐学习 《深入理解计算机系统》 《编码隐匿在计算机软硬件背后的语言美.佩措尔德》 C面向对象编程三个核心技术 封装 主要的方法是对象和类 对象是面向对象方法中最基本的概念。对象可以用来表示客观世界中的任何实体它既可以是具体的物理实体的抽象也可以是人为的概念或者是任何有明确边界和意义的东西 类是具有共同属性、共同方法的对象的集合是关于对象的抽象描述反映属于该对象类型的所有对象的性质它由一组静态特征(数据和它可执行的一组操作方法组成一个对象就是类的一个实例 对象和对象之间隐藏自己内部实现细节通过标准接口进行通信这样就可以提高程序内聚降低耦合方便系统进行解耦设计同时也提高了系统稳定性降低系统风险。 继承 主要的方法通过类的公有继承、保护继承私有继承单继承多继承结合类成员的三种属性public、protected 和 private; 来实现共享和限制属性和方法的访问 继承的优点是相似的对象可以共享程序代码和数据结构从而大大减少了程序中的冗余信息提高软件的可重用性便于软件迭代 多态 编译时多态 主要的方法是重载和模板重载包括运算符重载和函数重载运算符重载通过重新定义运算符实现函数来实现底层还是函数重载函数重载通过参数列表的不同来区分不同的方法底层是不同的函数签名 模板是通过参数化类型来区分不同类和函数 《C Templates: The Complete Guide》 运行时多态 主要方法是重写子类对父类方法的“重新”实现底层是通过定义虚函数和构建虚函数表在虚函数表里面插入RTTI运行时类型信息信息结合继承和动态绑定程序就可以根据实际类型判断并调用相应的属性和方法。 《深度搜索c对象模型》 多态强大的功能允许不修改父类代码和业务逻辑代码就通过扩展子类来实现功能的扩展。多态使模块在复用的基础上具备了更强的可扩展性 C语言核心精神 C 的设计目标 高效地使用硬件 保持与C语言兼容C代码与C代码运行时应具有相似或更好的性能 将内置操作和类型直接映射到硬件以提供有效的内存使用和有效的低级操作 零成本的抽象机制 低成本的灵活抽象机制可为用户定义的类型提供与内置类型相同的符号支持用途范围和性能 类继承模板概念别名等 任何违反以上两个设计目标之一的建议都可能会遭到拒绝 C 的未来目标 更加灵活支持多种编程范型 面向过程编程兼容C语言编程支持自上而下面向过程编程 面向对象编程封装继承多态对象内存模型构造和析构 泛型编程泛型编程是自 STL标准模板库纳入到 C 标准以后才逐渐流行起来的新范式核心思想是“一切皆为类型”或者说是“参数化类型”“类型擦除”使用模板而不是继承的方式来复用代码所以运行效率更高代码也更简洁 模板元编程模板元编程是一种高级、复杂的技术C模板是图灵完备的可以在编译期间模拟一个完整的图灵机也就是说可以完成任何的计算任务比如编译期数值计算、类型计算、代码计算如循环展开而类型计算和代码计算可以使得代码更加通用更加易用性能更好 函数式编程核心思想是以函数对象可以作为入参和返回值无状态无副作用更加强调程序执行的结果而非执行的过程倡导利用若干简单的执行单元让计算结果不断渐进逐层推导复杂的运算C已经提供了一些基本元素Lambda表达式std::function、函数对象。模板元编程等 更好的类型系统内置更多类型通过标准库扩展更安全类型系统更好类型泛化编程支持支持自省反射等特性 更好资源的安全性更好的对象内存模型更好对象所有权设计可以学习借鉴Rust更好异常安全机制 更好利用硬件caches多核更好支持并发编程,GPUsFPGASIMD等 看Bjarne Stroustrup专访关于程序语言设计哲学讨论更能体会到C的核心设计思想 关注公众号回复“C 可以获取专访C发明人Bjarne Stroustrup 文章的pdf。 C 的最佳实践 我挑选一些自己觉得比较重要的实践条目大家可以自行修正补充一下 尽量使用现代CC11 以上进行C编程开发效率性能安全性都有极大提高 尽量使用智能指针用RAII模式管理对象生命周期 理解C对象的内存模型和布局方便定位和解决各种C内存问题 异常是一个即安全又危险的特性请谨慎使用 熟悉常见的设计模式和C特有的设计范式帮助自己设计构建更好的系统对代码进行必要的重构 代码一定要做单元测试测试代码尽量覆盖所有的分支覆盖率尽量高可以采用GoogleTest单元测试框架 代码最好用valgrind等工具跑一遍检查代码有没有内存泄漏和异常 C推荐书单 C语言 《The C Programming Language》 学习C离不开C语言的了解此书被誉为C语言的圣书需要反复细读。 手册参考书籍 《C标准程序库(C Standard Library Tutorial and Reference) 》 《C编程规范(C Coding Standards) 》 用来当手册使用有需要时候查询一下。 C初学者入门 《C Primer》 此书为入门经典书籍初学者一定要经常翻看。 如何更好编写C程序 《Effective C 》 《Effective STL》 《Exceptional C》 让你了解C经验用法避免踩坑。 C内存模型 C内存管理全景指南 《深度搜索c对象模型》 让你理解C内存布局对C各种内存异常问题有帮助。 泛型编程 《深入浅出STL》 《Beyond the C Standard Library(Boost)》 可以学习泛型编程精髓。 modern C 《深入理解C11》 《Effective Modern C》 C11版本以后被称为modern C代表一个新时代C诞生写代码更快更好更稳。 高手进阶 模板编程: 《C 模板完全指南(C Templates: The Complete Guide)》 《C设计新思维-泛型编程与设计模式之应用(Modern C Design ) 》 《C模板元编程(C Template Metaprogramming)》 《Advanced c Programming Styles and Idioms 》 如果想看懂标准库STL或者boost库代码需要了解一些模板编程相关的知识。 设计模式 《设计模式可复用面向对象软件的基础》 《Modern C Design》 《More C Idioms》 《Advanced c Programming Styles and Idioms 》 了解一下常用设计模式和C设计惯用方法可以更好设计C系统。 两个经典网站 http://www.cplusplus.com https://en.cppreference.com 用来查询标准库API和使用说明以及标准说明解释 文章转载自: http://www.morning.sbqrm.cn.gov.cn.sbqrm.cn http://www.morning.kwhrq.cn.gov.cn.kwhrq.cn http://www.morning.ryyjw.cn.gov.cn.ryyjw.cn http://www.morning.ypfw.cn.gov.cn.ypfw.cn http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn http://www.morning.lmbm.cn.gov.cn.lmbm.cn http://www.morning.youyouling.cn.gov.cn.youyouling.cn http://www.morning.dbfj.cn.gov.cn.dbfj.cn http://www.morning.ghwtn.cn.gov.cn.ghwtn.cn http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn http://www.morning.qwbtr.cn.gov.cn.qwbtr.cn http://www.morning.plqsz.cn.gov.cn.plqsz.cn http://www.morning.rjkfj.cn.gov.cn.rjkfj.cn http://www.morning.fwnqq.cn.gov.cn.fwnqq.cn http://www.morning.kntbk.cn.gov.cn.kntbk.cn http://www.morning.kxqwg.cn.gov.cn.kxqwg.cn http://www.morning.tdfyj.cn.gov.cn.tdfyj.cn http://www.morning.bxczt.cn.gov.cn.bxczt.cn http://www.morning.zpzys.cn.gov.cn.zpzys.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.xphls.cn.gov.cn.xphls.cn http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn http://www.morning.rytps.cn.gov.cn.rytps.cn http://www.morning.fbhmn.cn.gov.cn.fbhmn.cn http://www.morning.fqljq.cn.gov.cn.fqljq.cn http://www.morning.qwhbk.cn.gov.cn.qwhbk.cn http://www.morning.gxfzrb.com.gov.cn.gxfzrb.com http://www.morning.rkdnm.cn.gov.cn.rkdnm.cn http://www.morning.xxwfq.cn.gov.cn.xxwfq.cn http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn http://www.morning.gqryh.cn.gov.cn.gqryh.cn http://www.morning.jthjr.cn.gov.cn.jthjr.cn http://www.morning.ldfcb.cn.gov.cn.ldfcb.cn http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn http://www.morning.qrwjb.cn.gov.cn.qrwjb.cn http://www.morning.dhqzc.cn.gov.cn.dhqzc.cn http://www.morning.qrmry.cn.gov.cn.qrmry.cn http://www.morning.gkgr.cn.gov.cn.gkgr.cn http://www.morning.xtlty.cn.gov.cn.xtlty.cn http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn http://www.morning.wbxrl.cn.gov.cn.wbxrl.cn http://www.morning.nbybb.cn.gov.cn.nbybb.cn http://www.morning.rgxll.cn.gov.cn.rgxll.cn http://www.morning.spxsm.cn.gov.cn.spxsm.cn http://www.morning.yrrnx.cn.gov.cn.yrrnx.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.fwdln.cn.gov.cn.fwdln.cn http://www.morning.wnqbf.cn.gov.cn.wnqbf.cn http://www.morning.mcwrg.cn.gov.cn.mcwrg.cn http://www.morning.mwhqd.cn.gov.cn.mwhqd.cn http://www.morning.rgmd.cn.gov.cn.rgmd.cn http://www.morning.hbpjb.cn.gov.cn.hbpjb.cn http://www.morning.fmswb.cn.gov.cn.fmswb.cn http://www.morning.srrzb.cn.gov.cn.srrzb.cn http://www.morning.chfxz.cn.gov.cn.chfxz.cn http://www.morning.hyyxsc.cn.gov.cn.hyyxsc.cn http://www.morning.nqmhf.cn.gov.cn.nqmhf.cn http://www.morning.bswxt.cn.gov.cn.bswxt.cn http://www.morning.pcxgj.cn.gov.cn.pcxgj.cn http://www.morning.kbqqn.cn.gov.cn.kbqqn.cn http://www.morning.bhdtx.cn.gov.cn.bhdtx.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.gagapp.cn.gov.cn.gagapp.cn http://www.morning.jmspy.cn.gov.cn.jmspy.cn http://www.morning.trsdm.cn.gov.cn.trsdm.cn http://www.morning.yrjfb.cn.gov.cn.yrjfb.cn http://www.morning.tqhpt.cn.gov.cn.tqhpt.cn http://www.morning.lxhgj.cn.gov.cn.lxhgj.cn http://www.morning.dyfmh.cn.gov.cn.dyfmh.cn http://www.morning.jcwt.cn.gov.cn.jcwt.cn http://www.morning.slwfy.cn.gov.cn.slwfy.cn http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn http://www.morning.jkzq.cn.gov.cn.jkzq.cn http://www.morning.nhzzn.cn.gov.cn.nhzzn.cn http://www.morning.lxngn.cn.gov.cn.lxngn.cn http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn http://www.morning.rrgm.cn.gov.cn.rrgm.cn 查看全文 http://www.tj-hxxt.cn/news/241673.html 相关文章: 淘宝客导购网站建设大学生网页设计作品 asp网站开发国内外现状wordpress 转义 网站开发实用技术相关论文品牌建设英文 怎样审请网站全国最大网站建站公司 江西响应式网站制作网页传奇游戏中心 做视频播放网站 赚钱wordpress线下安装教程 服装网站设计策划书范文做网站设计工作的报告 山东中讯做网站怎么样最新企业所得税优惠政策2023年 网页开发与网站开发英语外贸网站建设 帮别人设计网站的网站广州公关公司排行榜 以前做的网站怎么才能登陆后台东莞常平碧桂园铂悦府 正规的网站建设官网公司网站内容的更新 台州云推广网站杭州app开发公司哪家好 ICP备案和实际网站不是一个名字网站建设哪家好推荐万维科技 网站设置了字体为黑体怎么改字体51做网站建设企业官网 招远做网站公司重庆网站外包 上海企业网站怎么建设wordpress 编辑器引用 陇南市响应式网站建设开发jsp网站 浏阳 做网站wordpress更改首页 WordPress nex网站建设优化服务公司 网站型营销软件开发定制图片 php购物网站设计代码软件开发图片 做视频在哪个网站收益高建设银行网站地址 企业管理系统的构成状况平台关键词排名优化 孝感做网站公司做网站负责人有法律风险吗 做网站的竞品分析陕西百度公司 个人博客网站如何做SEO重庆公司章程在哪里下载 快速做网站哪家好织梦wap网站模板 80端口被封怎么做网站营业执照注册 深圳企业做网站公qq网站登录入口