C语言介绍

   使用汇编语言不方便,UNIX操作系统注重可移植性。 最初,C语言是为了重新实现UNIX操作系统而设计的,很快,整个UNIX操作系统几乎都用C语言重写,这证明了C语言的强大和实用性。C语言在操作系统、设备驱动、嵌入式应用广泛。

(1)过程性语言:C语言作为一种过程性语言,侧重于通过算法描述来指导计算机执行任务,关注的是如何按步骤完成计算任务。过程性强调使用明确且结构良好的控制结构,如for循环、while循环、do-while循环和if-else语句,逻辑清晰、代码的可读性。限制非结构化跳转(如goto语句的使用),鼓励使用结构化控制流,提高程序的可维护性和稳定性。

(2)自顶向下的设计方法:提倡将复杂程序分解为简单、可管理的模块。这种设计思想鼓励从整体(顶层)开始规划,逐步细化到具体的实现细节(底层)。

(3)模块化编程:通过将大型程序分解为小型模块,C语言支持模块化编程,每个模块作为独立的单元,可以单独编写、测试和复用。这种方式提高了代码的重用性和项目的可扩展性。

C++介绍

C++融合了3中不同的编程方式:C语言、面向对象语言、泛型编程。

类:类是一种规范,定义了数据成员和成员函数,构成了一个新的数据类型。类描述了对象的特征和行为。

对象:对象是类的具体实例,即根据类的规范创建的数据结构。每个对象都拥有类所定义的属性和方法,通过对象可以进行实际的数据操作和功能实现。

封装:通过封装,类可以将内部数据(私有成员)隐藏起来,仅暴露有限的公共接口(公有成员函数)供外部访问。这样可以防止数据被不当修改,增强代码的安全性和稳定性。

多态:多态允许使用一个接口来表示不同类型的实体,从而能够在不修改现有代码的情况下,使程序能够处理多种数据类型或类的对象。这通过虚函数、重载运算符和函数重写等机制实现。

继承:继承是一种建立类与类之间关系的方式,子类可以继承父类的属性和方法,并在此基础上添加或修改,实现代码的复用和扩展。这有助于构建一个层次化的类结构,促进模块化和灵活性。

代码重用:OOP鼓励通过继承、封装和多态等机制设计可重用的代码模块,减少了重复编码的工作量,提高了开发效率和代码质量。

可移植性

可移植性是衡量软件在不同环境(操作系统、硬件平台)下无需重大修改即可运行的能力。C++编写的程序可移植性两个方面挑战:

(1)硬件相关性:直接与特定硬件交互的程序代码会限制其可移植性。例如,如果程序中包含了针对IBM PC视频卡的直接控制代码,那么在非IBM PC架构的系统(如使用SPARC处理器的系统)上,这部分代码将无法正常工作。

     为了提高可移植性应尽量避免硬件特定的编程,将硬件依赖的代码抽象或封装在独立的模块中。这样,当需要将程序移植到新平台时,只需重写或调整这些特定模块,而不是整个程序。

(2)语言实现的差异:没有统一的标准,不同的C++实现之间可能存在兼容性问题。为了解决这一问题,ANSI和ISO合作制定了C++语言的标准,遵循这些国际标准的编译器和实现将大大提升程序的跨平台可移植性。

C++标准的发展历程:

C++98:发布于1998年,这是C++的第一个正式国际标准,由ISO、IEC和ANSI共同批准。标准不仅确认了现有的C++特性,还引入了新特性,如异常处理、运行时类型识别(RTTI)、模板编程和标准模板库(STL)。

C++11:表明计划在2010年代初完成,最终提前完成并在2011年发布。C++11对语言进行了显著扩展,包括自动类型推导(auto)、lambda表达式、右值引用与移动语义、并发支持等,同时也增强了语言一致性,使C++更易学习和使用。