当前位置: 首页 > news >正文

建站模板平台优化关键词是什么意思

建站模板平台,优化关键词是什么意思,校园网站建设申请报告,那些网站做推广一、C基本介绍 1.1 C是什么 C是一种通用的、高级的编程语言#xff0c;它是C语言的扩展和改进版本。C由Bjarne Stroustrup博士在20世纪80年代初开发#xff0c;旨在为程序员提供更多的功能和工具#xff0c;以便更轻松地编写复杂的软件程序。 拜一拜祖师爷#xff0c;保佑在… 一、C基本介绍 1.1 C是什么 C是一种通用的、高级的编程语言它是C语言的扩展和改进版本。C由Bjarne Stroustrup博士在20世纪80年代初开发旨在为程序员提供更多的功能和工具以便更轻松地编写复杂的软件程序。 拜一拜祖师爷保佑在学习C的路上少写bug C支持面向对象编程。面向对象编程是一种编程范式通过将数据和操作封装在对象中可以更好地组织和管理代码。这使得C能够创建模块化、可重用和易于维护的程序。 此外C还提供了许多其他功能和特性如模板、异常处理、多态等。这些功能使得C成为一门功能强大且灵活的编程语言被广泛应用于各个领域。 C与C语言是有一定的渊源的但是C#的C并没有很大关系。C#是早期微软为了对标Java而问世的一款编程语言。 C是在C语言的基础上补充拓展出来的就好比是一个妈生的亲兄弟(姐妹)。而Java“借鉴”了C的一些特性然后在此基础上做出一些改变自立门户C和Java就好比是堂兄弟(姐妹)。C#又“借鉴”了Java一些特性和概念然后又在此基础上做出一些改变Java和C#也是属于堂兄弟(姐妹)关系。 1.2 C发展史 C的发展史可以追溯到1979年贝尔实验室的本贾尼等人试图分析Unix内核的时候试图将内核模块化于是在C 语言的基础上进行扩展增加了类的机制完成了一个可以运行的预处理程序称之为C with classes。随着时间的推移这种新的语言逐渐发展壮大并在1983年正式被命名为C。C继承了C语言的基本语法和功能并引入了面向对象编程的特性如类、继承和多态性。 C历史版本 目前C23还在定制中这从侧面也能看出来C还是有一定的局限性的。 Java相比C有一个“氪金”的公司(Oracle)大概每半年就更新一次这样的好处就是Java后期的生态可能会比C好一点但是这也对学习Java的人来说是一个头疼的问题因为更新太快了可能学着学着版本就换了。 C现在虽然还是在发展但是市面上主流使用的还是C98和C11这些也够我们掉头发了所以我们也不必担心能把现有的玩明白就很厉害啦。由于C是从C语言里面生长出来的所以C是兼容C语言的。 C C23 将会是 C20 后的下一个 C 标准。这个新标准对 C 进行了大幅改进但其影响力却不如 C98、C11 或 C20 那样翻天覆地。C23 更像是 C17 的传统延续。 为了理解 C 的这一进化步骤让我们将 C 标准放在历史背景中来看看。 1、C 标准 C 已有超过 40 年的历史了。那么在这些年里C 都经历了什么变化呢以下是一个简要的回答一直延续到 C23。 C98 在 20 世纪 80 年代末Bjarne Stroustrup 和 Margaret A. Ellis 合著了他们的著名书籍 Annotated C Reference Manual注释版 C 参考手册简称 ARM。这些书有两个目的。首先那时存在许多独立的 C 实现。因此ARM 定义了 C 的功能。其次ARM 是第一个 C 标准 C98ISO/IEC 14882的基础。C98 有几个关键特性模板、包含容器和算法的标准模板库STL、字符串和 IO 流。 C03 随着 C0314882:2003C98 得到了一项微小的技术修正小到在我的时间线上都没有容身之地。在社区中包括 C98 在内的 C03 被称为传统的 C。最早的C标准版本包含了面向对象编程的基本特性、模板和STL标准库等功能。 TR1 2005 年发生了一件令人非常兴奋的事情。这一年发布了所谓的技术报告 1Technical Report 1简称 TR1。TR1 是向着 C11因此向着现代 C 的一大步。TR1TR 19768是基于 C 标准化委员会成员创立的 boost 项目。TR1 有 13 个库这些库也成为下一个 C 标准的一部分。例如库对应到正则表达式库、随机数库、智能指针如 std::shared_ptr以及哈希表。只有所谓的特殊数学函数需要等到 C17 才能使用。 C11 C11 是下一个 C 标准但我们通常称之为现代 C。现代 C 也包括了 C14 和 C17。C11 拥有许多特性这些特性从根本上改变了我们编写 C 程序的方式。例如C11 引入了 TR1 的组件还有移动语义、完美转发、变长模板或 constexpr还有其他诸多特性。随着 C11 的到来我们还得到了一个内存模型作为基础的线程模型以及一个线程 API。如果你感到好奇这里有我关于内存模型和多线程的一些基本文章。 C14 C14 是一个小型的 C 标准。对C11进行了一些修订和改进引入了读写锁增加了一些新特性和语法如泛型lambda表达式、constexpr函数、二进制文字等。 C17 C17 有两个显著的特性并行 STL 和标准化的文件系统。大约 80 个 STL 算法可以使用所谓的执行策略进行执行。这意味着 std::sort(std::execute::par, vec.begin(), vec.end()) 对 C 实现的排序容器 vec 是一个并行处理的提示。此外你还可以指定排序应按顺序执行std::execution::seq或向量化执行std::execution::par_unseq。就像 C11 一样boost 对 C17 也产生了深远影响。我们从 boost 获取了文件系统以及三种新的数据类型std::optional、std::variant 和 std::any。 C20 C20 的变革对我们编写 C 程序的方式产生了根本性的影响其程度不亚于 C11。特别是以下四个重要特性Ranges范围库Coroutines协程Concepts概念以及 Modules模块。 新的 Ranges 库让我们可以直接在容器上表达算法使用管道符组合算法并将它们应用于无限数据流。 多亏了 Coroutines异步编程在 C 中可能会成为主流。协程是协作任务、事件循环、无限数据流或管道的基础。 Concepts 将改变我们对模板的思考和编程方式。它们是有效模板参数的语义类别。它们让你能够直接在类型系统中表达你的意图。如果出了什么问题你会收到简洁的错误信息。 Modules 将克服头文件的限制。它们带来了很多好处。例如预处理器将变得不再需要。最终我们还将拥有更快的构建时间更简单的包构建方式。 关于 Ranges、Coroutines、Concepts、Modules 和 C20 的文章可以参见链接。链接见文底 C23 现在2023年11月C23 已经完成并进入了最终投票阶段。 C23 提供了一种小巧但影响深远的核心语言特性——this 的推导。这种特性允许你类似于 Python在成员函数定义中明确地传递隐式传递的 this 指针。引入 this 的推导后一些 C 中复杂的技术例如 CRTP 奇异递归模板模式 或者 Overload Pattern过载模式将变得轻而易举。 C23 库还将新增很多有意思的特性。你可以直接使用 import std; 导入标准库或者在 std::print 和 std::println 中应用 C20 的格式字符串。此外我们将出于性能考虑获得如 std::flat_map 这样的扁平化关联容器这些容器在时间和空间复杂度上做了一个平衡。std::flap_map 可取代 std::map 。std::optional 的接口将扩展为具有组合性的单子接口。新的数据类型 std::expected 已经具有可组合的接口可以用于错误处理存储预期值或非预期值。多亏了 std::mdspan我们可以创建和操作多维数组。最后std::generator 是第一个用于创建数字流的具体的协程。std::generator 是 Ranges 库的一部分该库也将在 C23 中得到增强。 1.3 c23详述 1.3.1、c23的目标和延革 c的标准发展速度在经过c11的近乎可以称革新的变化之后开始步入了快车道。有的人在网上说c11后的c语言和c11以前的c语言不是一个语言这有点夸张了。但不可否认其内容确实变化非常大。很多人可能都没有感觉到c新标准的变化毕竟国内的应用还是比较浅的。可是c14和c17又快速推出还没等c开发人员缓过神儿来c20又迫不及待的出现了。快吗不快。这不c23的标准现在基本也算敲定的差不多了。 而c26也会在今年开始启动标准的制定而c29也已经开始规划。 从过去的发展到未来的规划排除特殊情况covid-19对c23是有影响的可以基本看清楚c的新标准是呈现大小大小这种波浪式的渐进过程可以理解为出现一次大的标准改进就会在后续一个版本进行完善和迭代扩展然后再进行一次大的标准的改进再一次完善如此反复。 实际情况中c11的对c语言的改变可以说令人耳目一新而c14就相对来说比较小了几乎没有推出什么新的东西c17虽然有所突破但仍然保持一个中型向上的扩展态势直到c20推出了概念等四大新特性。c23其实更接近于c17的变化但由于一些特殊的情况导致一些细节可能最终无法完成所以说c26可能会相对偏大一些但真正的大变化可能会在c29产生。当然前面的是已经成为的事实而后面是一种规划还要看最终的结果。 对于c标准的制定大概分为两部分一部分是c语言特性本身的制定另外一个就是c标准库特性的制定。 可以显而易见的是前者的的难度比后者要大的得多。 至于标准更改中涉及到的相关标准提案有兴趣可以去网上查找特别去标准的网站上可以看到相关的T0T0.5T1T2,T3等分类的方式和应用划分的条件。 1.3.2、c23的新特性 c23的新特性就从两个方面来介绍即语言本身和STL特性两个方面。 A、语言特性 1、显示的this 2、多维数组的支持operator[] 3、size_t的字面量支持 4、浮点字面量 5、假定表达式 6、新的预处理指令 7、Lambda的简化 8、UNICODE转义字符的增强 9、显示的Move 10、CATD的增强 这是看上去相对来说比较明确的新的语言特性其实还有一些但最终有多少还要看最终标准的尘埃落定。 B、标准库特性 1、stl的import应用 2、异常和格式化输出 3、协程的std::generator 4、mdspan多数据视图 5、平坦容器 6、堆栈信息库 7、zip系列 8、异质容器成员 9、大量的库的细节的完善和更新以及BUG的FIX 国内的书籍跟进太慢而且国内的相关文章也比较少建议还是多看一外文书籍当然前提是得能看象最新的c模板编程就大量使用了新的c标准还有c20的相关书籍国内很少。当然这也是国内的环境使然毕竟c在国内是一门已经不太受欢迎的语言即使现在有些重新发光的样子但还得再看看。 后面的文章会对其中的一些特性进行分析说明这里不再展开说明了。 1.3.3、网友网友对 C23 讨论 很多网友对 C23 的改进展开了广泛讨论 很多网友对此次更新并没有感到那么兴奋。有网友表示很高兴看到 C23 将带来 C 可用性的提升但和 Python 还差很远。有网友对此甚至表示失望他认为 C23 和 C 98 相比并没什么革命性的特性居然还有人会为此感到兴奋。 有的网友则愿意给 C23 一个机会。他很久以来一直用 C但是他对 C 的复杂性感到不满所以他主要用 C11。他说现在 C 有了模块、概念等新特性他开始考虑 C23 是否值得用于新项目。他原本想用 Rust 代替 C但是现在他可能会给 C23 一个机会。有网友认为 C 的复杂性是因为它承诺永远能够兼容旧的代码造成的。 还很多网友在评论区对各种编程语言进行了讨论。有网友认为问题并不是出在语言本身而取决于你用它来实现什么样的功能。例如如果你想使用虚幻引擎或编写音频插件就学习 C。如果你想玩机器学习就学好Python。如果你想制作移动应用程序就学习 Swift 或 Kotlin。 1.3.4、总结 在c23中大家比较期待的其实是对c20的一些新标准的完善和最终应用重点就是协程在STL的应用标准库的Modules应用Executors和网络库。不过目前来看后两个比较麻烦原来还认为Executors应该是比较容易的。不过最终结果不出来还是不敢明确说。标准不断迭代是个好事情谁也不愿意看着一幅老面孔不变。 标准制定出来编译器和IDE的跟进估计会晚上半年到一年也就是说真正要用非试用得明年了。不过好多编译器会对一些自己的提案中的相关部分或一些有兴趣的部分有支持这个可以试试但也是只是试试吧在实际工程里风险有点大。 二、 C的优势 2.1 语言的使用广泛度 从排行榜可以看出来C依然是属于大头对于学习C来说还是有很大的优势。 C兼容C学一门等于学两门不亏 C让你成为“黑客”C给予了程序员极大的控制力允许直接操作内存和底层资源。在合法和道德的前提下C让你成为一个技术高手能够创造出令人瞩目的产品如Linux操作系统、英雄联盟、浏览器、PS…哪些知名的软件是c写的。 C学习十分有成就感 虽然这些都不是很着调但我们在学习之前肯定要给自己打气“工欲善其事必先稳心态”(原句工欲善其事必先利其器)人家“王婆婆”卖瓜之前还得先夸夸自己的瓜呢更何况C确实是个“好东西”。 C具体的优势和特性还得在今后的学习中慢慢领悟。 2.2 C的应用领域 游戏开发著名的游戏引擎Unity3D使用C作为其核心引擎的开发语言。另外著名的游戏《英雄联盟》和《CS》也是使用C进行开发的。 嵌入式系统无人机制造商DJI的飞控系统是用C编写的。汽车电子领域中自动驾驶系统和车载娱乐系统通常也使用C进行开发。 科学计算和数值分析开源库Eigen是一个用于线性代数计算的C库被广泛用于科学计算和数值分析任务。另外CERN的粒子物理研究中使用的ROOT数据分析框架也是用C编写的。 金融和高频交易高频交易公司使用C来开发快速而高效的交易系统。例如金融公司Jane Street就是使用C作为其主要交易系统的开发语言之一。 图形界面和桌面应用跨平台的应用开发框架Qt是用C编写的。许多知名的软件如Adobe Photoshop、Autodesk Maya和Microsoft Office套件也使用C进行桌面应用程序的开发。 数据库系统开源关系型数据库管理系统MySQL使用C编写。另外PostgreSQL、Oracle数据库等也在其代码中使用了C。 三、 C学习计划 网上常听闻C是最难学的语言之一这是属实的。《程序员》期刊2010年8期C强大背后里面有提到 C缺点之一是相对许多语言复杂而且难学难精。许多人说学习C语言只需一本KR《C程序设计语言》即可但C书籍却是多不胜数。我是从C进入C皆是靠阅读自学。在此分享一点学习心得。个人认为学习C可分为4个层次 第一层次C基础挑选一本入门书籍如《CPrimer》、《C大学教程》、或Stroustrup撰写的经典《C程序设计语言》或他一年半前的新作《C程序设计原理与实践》而一般C课程也止于此另外《C标准程序库》及《The C Standard Library Extensions》可供参考 第二层次正确高效地使用C此层次开始必须自修阅读过《(More)Effective C》、《(More)Exceptional C》、《Effective STL》及《C编程规范》等才适宜踏入专业C开发之路 第三层次深入了解C关于全局问题可读《深入探索C对象模型》、《Imperfect C》、《C沉思录》、《STL源码剖析》要挑战智商可看关于模版及模版元编程的书籍如《C Templates》、《C设计新思维》、《C模版元编程》 第四层次研究C阅读《C语言的设计和演化》、《编程的本质》(含STL设计背后的数学根基)、C标准文件《ISO/IEC 14882:2003》、C标准委员会的提案书和报告书、关于C的学术文献。 就本人现阶段而言要是能学到第二层次就已经很不错了。 现在市面上有很多公开的课程找到适合自己口味的跟着这些免费课程入门在这期间加上一定的练习多多总结积极学习、消极学习、持续学习。不可操之过急C这门语言肯定是需要一定的积累的不能被网上的“21天”系列迷惑。在有一定基础之后可以看一些技术书籍进一步提升自己的水平。
http://wiki.neutronadmin.com/news/33904/

相关文章:

  • 网站页面大小开鲁seo服务
  • 中国建设银行网站特点wordpress转载微博
  • wordpress个人博客建站系统网页传奇游戏加速器
  • 搭建网站的步骤遵义官网建设
  • wordpress修改网站名称建个网站需要多少钱?
  • 那个网站做的好游戏制作专业
  • 合肥高新区建设发展局网站南宁快速优化排名
  • APP网站开发联系电话徐州住房和城乡建设部网站
  • 凡科自助建站网站建筑网片有几种
  • 珠海网站建设维护全面的苏州网站建设
  • 网站关键词免费优化广告公司名称大全简单
  • 网站建设的项目说明书网站中英文转换js
  • 静安网站建设哪里有wordpress 信息港
  • 宁波网站建设公司制作网站嘉兴海盐县城乡建设局网站
  • 做外贸生意用哪个网站最好铝基板营销型网站建设
  • 网站后台 js框架我国的课程一般通过
  • 网站设计培训成都哪家好电子商务网站的建设流程图
  • 东莞网站建设(信科网络)企业网站的建设怎么收费
  • 网站有pc站和手机站如何修改wordpress权限
  • 可做ppt的长篇英文阅读网站wordpress mip站
  • 深圳建设执业注册中心网站常见的简单的app开发
  • 精品网站建设费用 要上磐石网络做网站如何赚钱
  • wordpress 站点维护python网站开发案例
  • 学校网站建设问卷调查表全球搜和外贸快车哪个好
  • 毕业设计是做网站设计wordpress调用标签大全
  • 怎么自己制作一个网站的书源网站建设内容工作总结
  • 企业做网站要多少钱建设银行手机银行下载官方网站下载
  • 杨和网站开发我国中小企业名单
  • 网站建设连接廊坊市安次区建设局网站
  • 高平企业网站做网站费用列入什么科目