乐趣区

关于c:如何一眼分辨是C还是C

C 语言的历史

C 语言是由贝尔实验室的 Dennis Ritchie 在 20 世纪 70 年代初开发的一种通用程序设计语言。在晚期的计算机时代,许多计算机应用不同的汇编语言编写程序,这导致了程序的可移植性和代码的可重用性很低。因而,Dennis Ritchie 在开发 C 语言时试图发明一种更具可移植性和可重用性的高级语言。

C 语言的语法相似于 B 语言,是由 Ken Thompson 开发的一种晚期的高级语言。C 语言在其发明的初期被用于开发 Unix 操作系统。因为 C 语言的高效性和可移植性,它很快成为了许多操作系统和应用程序的规范编程语言。

在 20 世纪 80 年代,ANSI(美国国家标准协会)开始制订 C 语言的规范。该规范于 1989 年正式公布,通常称为 ANSI C 或 C89。这个规范定义了 C 语言的根本语法和库函数,使得 C 语言的可移植性更加优良。

C++ 语言的历史

C++ 是在 20 世纪 80 年代由 Bjarne Stroustrup 开发的一种面向对象的编程语言,它扩大了 C 语言的语法。Bjarne Stroustrup 最后开发 C ++ 是为了解决 C 语言的一些限度,使其更适宜大型软件我的项目的开发。

C++ 语言最后称为“C with Classes”,是在 C 语言的根底上增加了类和其余面向对象的个性。它于 1983 年首次公布,并于 1998 年公布了规范 C ++。这个规范定义了 C ++ 语言的语法、库函数和个性,使得 C ++ 语言的可移植性更强,也为 C ++ 的广泛应用奠定了根底。

C++ 语言被广泛应用于系统软件、应用程序、嵌入式零碎、游戏开发和其余畛域。它是许多风行软件的编程语言,如 Windows 操作系统、MySQL 数据库和 Adobe Photoshop 等。

C 和 C ++ 的区别

一般来说,通过以下几个方面能够一眼分辨 C 语言和 C ++ 语言的代码:

头文件

C++ 语言代码通常应用大量的头文件,而 C 语言应用的头文件较少。
C 语言中,头文件次要包含规范库函数,如 stdio.h、math.h、string.h 等,这些文件在编译器外部曾经定义好了,不须要额定的实现。在应用时,咱们只须要 include 头文件即可。

C++ 语言中,除了 C 语言的规范库头文件外,还有许多第三方头文件,如 <iostream>,<vector>,<map> 等,这些头文件蕴含了很多较高级的性能,比方面向对象的编程,容器的应用,以及各种模板等。

因而,能够通过判断头文件的类型来判断代码是 C 语言还是 C ++ 语言。如果头文件为 C 语言规范库函数,那么代码很有可能是 C 语言;如果头文件为 C ++ 语言第三方库,那么代码就很有可能是 C ++ 语言。

援用关键字

C++ 语言中有两个关键字:class 和 namespace,而 C 语言没有这两个关键字。
C 语言并不反对援用,而 C ++ 则反对援用关键字。在 C ++ 中,应用 ”&” 符号申明援用变量,这样援用变量就是另一个变量的别名。例如:

int x = 10;
int &y = x;

在这个例子中,y 就是 x 的援用。更改 y 的值会间接影响 x 的值。

另外,C++ 还反对右值援用,应用 ”&&” 申明,示意对右值的援用。

在总的来说,C++ 的援用概念比 C 语言的指针更为简略易用,并且能够更无效地治理内存。

运算符重载

C++ 语言反对运算符重载,但 C 语言不反对。
C++ 语言是 C 语言的扩大,反对运算符重载,能够重定义一个运算符的操作,使其与一个用户定义的数据类型配对。换句话说,咱们能够为一个用户定义的数据类型定义相应的运算,而后在代码中应用这些运算符,就像应用根本的运算符一样。

函数重载

C++ 语言反对函数重载,但 C 语言不反对。
C++ 语言的函数重载是指在一个类中定义了多个名字雷同的函数,然而它们的参数列表不同,参数个数不同,或者参数类型不同,这样的函数就是重载的函数。

C++ 语言的函数重载容许咱们在同一个作用域内应用雷同的名字,然而它们的行为是不同的,这种个性对于须要更灵便的解决同样的数据结构的场景十分有用。

函数重载的应用是通过 C ++ 语言的函数的类型推导机制实现的,编译器会依据函数调用时的参数列表来抉择相应的函数,并执行该函数。因而,C++ 语言的函数重载能够简化代码,进步代码的可读性和可维护性。

构造函数和析构函数

C++ 语言中有构造函数和析构函数的概念,而 C 语言没有。
C++ 构造函数和析构函数是 C ++ 中十分重要的两种非凡的成员函数。

构造函数:构造函数在每次创建对象时主动调用,并且是专门用来初始化对象的。它的名字与类的名字完全相同,不含返回类型。构造函数能够有多个,参数也能够不同。

析构函数:析构函数在对象生命周期完结时主动调用,并且是专门用来开释对象占用的资源的。它的名字是以“~”结尾,并且与类的名字完全相同。析构函数只有一个,不能有参数。

在 C ++ 中,通过应用构造函数和析构函数,咱们能够不便地治理对象的生命周期,确保在对象创立时正确初始化,在对象销毁时正确开释资源。

以上是一些辨别 C 语言和 C ++ 语言的罕用办法,但并不是相对的。最终的判断依然要以代码的特色为准。

退出移动版