C++和C语言的前世今生,两者有什么血缘关系?
C语言虽说经常和C++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11和C++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本文在讨论的时候使用的C语言标准是C89,C++标准是C++99.我们来介绍C语言和C++中那些不同的地方。
早期并没有”C++“这个名字,而是叫做”带类的C“。
”带类的C“是作为C语言的一个扩展和补充出现的,目的是提高开发效率,如果你有Java Web开发经验,那么你可以将它们的关系与 Java 和 JSP 的关系类比。
这个时期的C++非常粗糙,仅支持简单的面向对象编程,也没有自己的编译器,而是通过一个预处理程序,先将C++代码”翻译“为C语言代码,再通过C语言编译器合成最终的程序。
随着C++的流行,它的语法也越来越强大,已经能够很完善的支持面向对象编程和泛型编程。
但是一直也没有诞生出新的C++编译器,而是对原来C编译器不断扩展,让它支持C++的新特性,所以我们通常称为C/C++编译器,因为它同时支持C和C++,例如 Windows 下的微软编译器(cl.exe),Linux 下的 GCC 编译器。
也就是说,你写的C、C++代码都会通过一个编译器来编译,很难说C++是一门独立的语言,还是对C的扩展。
C++是在C语言的基础上进行的扩展,C++包含了C语言的全部内容。
C++支持面向过程编程、面向对象编程和泛型编程,而C语言仅支持面向过程编程。
就面向过程编程而言,C++和C几乎是一样的,所以学习了C语言,也就学习了C++的一半,不需要从头再来。
没有任何编程基础的读者,建议先从C语言学起,不要贪多嚼不烂。等你熟悉了C语言,能编写出上百行的代码,就对编程有些概念了,这个时候再去了解C++究竟在C语言基础上增加了什么,你就站在了一定的高度。
C++和C语言的前世今生,两者有什么血缘关系?相关推荐
- GO-2-go语言的前世今生
Go语言的前世今生 一. 为什么需要一个新的语言 最近十年来,C/C++在计算领域没有很好得到发展,并没有新的系统编程语言出现.对开发程度和系统效率在很多情况下不能兼得.要么执行效率高,但低效的开发和 ...
- 开课吧:深入了解C++和C语言的血缘关系
目前人们在提起C++的时候,会很自然的联想到C语言,为了能够深入了解C++开发相关信息,需要搞清楚C++和C语言的血缘关系. 现在看来,C++和C语言虽然是两门独立的语言,但是它们却有着扯也扯不清的关 ...
- 区块链用哪种语言 Java_区块链开发用什么语言呢?区块链与编程语言的关系详解...
原标题:区块链开发用什么语言呢?区块链与编程语言的关系详解 区块链的概念就随着比特币的大热开始逐渐进入公众视野,比特币的拥有者为了使其创造更高的财富,开始疯狂炒作,因而引发购买比特币大浪潮.然而等到比 ...
- 【C语言简介】C语言的前世今生
C语言的发展历史: 20世纪70年代初,贝尔实验室的Dennis Richie 等人在B语言基础上开发出C语言,最初是作为UNIX的开发语言: 20世纪70年代末,随着微型计算机的发展,C语言开始移植 ...
- 理解C语言——从小菜到大神的晋级之路(1)——引言:C语言的前世今生
第一课的视频链接点这里 C语言是现在应用最为广泛的编程语言之一,也是现在依然流行的编程语言中历史最悠久的一种之一.在目前业界广泛使用的编程语言中,许多 种语言是以C为基础发展而来.在多类大学的工程类专 ...
- 再白也能学会的C-C语言的前世今生
爆竹声中一岁除,春风送暖入屠苏.千门万户曈曈日,总把新桃换旧符.今天在这个日子里,我们回首往昔,既然聊到要学C语言,不得知道C语言是糖在哪里甜的,醋打哪里酸的啊. C语言是在 70 年代初问世的.一九 ...
- C专家编程 —— C语言的前世今生
文章目录 C的史前阶段 C的早期体验 K&R C 和 ANSI C const 类型转换 一个微妙的bug 使用无符号建议 GNU和pragmas pragma指示符 C的史前阶段 UNIX系 ...
- C语言的前世今生与后世
一.起源于ALGOL家族 IAL (ALGOL58)>>ALGOL60>>CPL>>BCPL>>B>>C>>C++>> ...
- 第一章:Java语言的前世今生-种族天赋:大谈Java成功之道
种族天赋:大谈Java成功之道 来源:https://edu.csdn.net/course/play/27274/361053 一.java语言的特点: 1.简单.高效:和C++相比 2.面向对象 ...
最新文章
- 《图解HTTP》读书笔记--第7章 确保Web安全的HTTPS
- sql语句多个表补齐四位_SQL学习笔记 - CTE通用表表达式和WITH用法
- ListView smoothScrollToPosition 定位不准笨方法解决
- Android查看真机布局,android-外部存储
- 逻辑读、物理读、预读的理解
- Oracle存在gap,发现gap及解决
- powershell自动化操作AD域、Exchange邮箱系列(1)——powershell 简介
- oracle procedure可以执行非常复杂的语句吗,oracle-存储过程(procedure)
- linux pbs 安装包,【Linux】单计算机安装PBS系统(Torque)与运维
- Chrome电脑免安装多个浏览器版本号共存
- excel公式里用html,Excel公式中{}是什么意思?要如何用?
- Ubuntu20.04安装,并Linux微信等
- MATLAB text legend title 输入减号 minus 符号的做法
- Parameter number 2 is not an OUT parameter 问题的解决方法
- 计算机网络:IPv6
- c++left right 和 setw() 函数的用法Alignment of Code
- bzoj 1123: [POI2008]BLO (tarjan求点双+树形DP)
- 红石外汇|每日分享:0.667是澳元多头在FOMC会议前的最后一道防线
- java oca_OCA - Java Test SE8 1Z0-808
- Android 11.0 驱动禁用usb鼠标和usb键盘