编程语言应用

首页 » 常识 » 问答 » C编程语言与C语言有什么区别和相似l
TUhjnbcbe - 2024/8/28 16:36:00

1从C到C++

学习了C语言程序设计之后,我们掌握了基本的编程思想和方法。这个时候,我们会思考,C语言与C++语言到底有什么区别?什么联系?

其实,C++语言与C语言有很大的相似之处,例如,变量的定义、if-else等语法规则,都是一样。甚至C语言标准库提供的malloc()、free()等函数,都可以在C++编程语言中使用。

那么,我们可以认为,C++语言是C语言的增强版。C++语言增加了类、模板等概念的定义和使用。所以,我们可以认为,C++语言会比C语言复杂。

例如,C++语言通过类的定义和使用,可以更容易实现“面向对象编程”。

2C++语言介绍

随着软件系统设计越来越复杂,那么,软件设计引入了OOP面向对象的设计思想。用来解决更复杂的软件设计问题。

为了解决软件设计危机,在20世纪80年代提出了面向对象的程序设计(ObjectOrientedProgramming,OOP)思想。这就需要设计出能够支持面向对象的程序设计方法的新语言。Smalltalk就是当时问世的一种面向对象的语言。而在实践中,人们发现由于C语言是如此深入人心,使用如此广泛,以至最好的办法不是另外发明一种新的语言去代替它,而是在它原有的基础上加以发展。

在这种形势下,C++应运而生。C++是由ATTBell(贝尔)实验室的BjarneStroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。C++保留了C语言原有的所有优点,增加了面向对象的机制。由于C++对C的改进主要体现在增加了适用于面向对象程序设计的“类(class)”,因此,最初它被BjarneStroustrup称为“带类的C”,后来为了强调它是C的增强版,用C语言中的自加运算符“++”,改称为C++。

注意:所谓的面向过程编程和面向对象编程,都只是一种思路,使用C语言和C++语言都可以实现。我们可以根据实际的项目需求,选择合适的开发语言。

例如一些简单的单片机系统,控制一个LED灯的闪烁,那么,用C语言就可以实现。而且,某些单片机的编译器不支持C++语言编译,所以,想用C++语言来开发都不行。

例如一些大型、复杂的游戏系统,涉及到很多的人物、角色、道具的定义,就合适使用C++语言来开发,此时,使用C++来做面向对象编程,就比较得心应手。

3C语言的OOP编程

在网络上搜索C语言与C++语言的区别,有很多资料都会提到:C语言是“面向过程编程”的语言。在开发小型的应用程序时,程序员用C语言较为得心应手。但是当问题比较复杂,程序的规模比较大的时候,面向过程的编程方法就显出它的不足,此时,需要使用面向对象的编程来解决大型软件问题。

那么,大型的软件就使用C++语言来开发,小型的软件就使用C语言来开发了吗?实际情况会是怎么样呢?

其实,C语言可以进行面向对象编程。例如Linux操作系统就是使用C来编写的,Linux内核使用了OOP(ObjectOrientPrograming面向对象程序设计)的思想。

C语言进行面向对象编程,就是使用struct结构体和函数指针来实现。这个过程需要比较高的C语言编程技术。在学习LinuxC编程的时候,我们使用结构体和函数指针,实现面向对象的编程。而且,在C++课程,我们学习了this指针之后,也有相应的章节,介绍C语言模拟C++的面向对象编程。

所以,我们也可以使用C语言实现面向对象编程。

C++更多的是提倡一种“设计方法---即面向对象的设计理念”,这种设计理念使用C++语言来实现比较方便,例如,C++提供了类的定义,提供private,protocol,public等访问限制,实现封装性更好。所以,使用C++语言来实现OOP面向对象编程,比较容易实现。

但是,我们需要清楚:OOP面向对象编程,只是一种思想。使用C语言也可以实现。

1
查看完整版本: C编程语言与C语言有什么区别和相似l