C与C++《精通Unix下C语言与项目实践》读书笔记(8)

简介:
不拘一个遍程序系列程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国。
宝宝图片:超可爱的小宝宝 博客
 
 
第1回 回评论读者展迷茫,出《笔记》浪子释疑惑(八)
作者:朱云翔,胡平(朱朱胡工作室)

1.4 为什么是C语言编程,而不是Java编程

现在Java特别流行,Linux也特别流行,在Linux下运行Java程序或在Linux下搭建网站也特别流行,但是Java是跨平台的语言,在WindowsLinux下编程都差不多,所以Java编程是Java的一亩三分地,不是Unix/Linux的责任,本笔记不涉及这方面的内容。
编程浪子:不在其位,不谋齐政。

1.5 为什么是C语言编程,而不是C++编程

未注册的游客BOBO:我认为,C++C语言的升级版本,应该比C高级,而且C++具有面向对象功能,设计起来肯定要比模块化设计更便捷、更爽快、更牛B,所以我们应该顺应时代的潮流,使用最新版更高级的C++编程。也就是说,凡是用结构的地方,就应该使用类;凡是模块化的功能就应该封装;凡是功能相同的就应该继承;凡是功能有差异的就应该多态。就像“子曰”中唱的那样,咳咳(BOBO清清喉咙,然后优雅的唱到):
C++的中心思想是个类,类的意思是,代码模块不累,代码重用不累,代码升级它也不用累,若以类为本体,表现在具体的行为上,come on everybody一起来,对功能封装,对共性继承,对差异多态,对数据模板,对错误用异常 ……”
编程浪子:STOP!这里是C语言培训课,等我下次做C++培训在欢迎未注册的歌手到来歌手到来。
Unix绝对支持C++编程的,但是应用的项目特别少,教材中之所以在Unix下使用C而不是C++语言编程,是出于以下两个原因的考虑:

1.5.1 大势所趋

首先,目前很多行业的Unix应用系统使用C语言设计,比如在银行的核心系统等,这样招工时提供的岗位大多数也是UnixC语言开发工程师。
其次,很多出名软件的二次开发只提供了C语言接口,或者C语言接口流传最广。比如SYBASE数据库提供的ESQL,比如Oracle提供的PRO*C,又比如MySqlC语言API等,虽然在C++中可以使用,但毕竟提供的是C规范。
再次,Unix本身提供的系统调用就是C接口的,系统调用是在操作系统编程的基础,所有对系统的操作最终都将由系统调用来完成。
所以,目前在Unix下使C编程是大势所趋,这种趋势不是一两个人就可以改变的,作为Unix编程大军中普通的一员,我们所做的就是随波逐流,紧随大众的脚步,别人不拐弯,我们就走直路。现在都用C,我们就为C摇旗呐喊,但是一旦C++成了Unix下开发主流,我们就应用义无反顾的投入C++的怀抱,绝不多停留一刻。

1.5.2 C语言也可以圆满设计满足要求的程序

如果说C是匕首C++是宝剑的话,双方互有优缺点,C++程序不一定就能设计出优秀的程序,C语言也不一定不能面向对象分析,关键看程序员本身的素质。
比如说很多人用VC++C++Builder编程浪子:可能绝版了,悲伤一个先),但是基本上只是自动产生一个函数,然后在函数中插入代码,这种程序与C语言有什么区别?只不过在函数调用时,一个直呼其姓,比如函数调用“侯赛因()”,一个在姓氏前增加名字而已,比如“萨达姆·侯赛因()”,毫不悲伤的说,很多同学对C++的认识仅仅停留在封装阶段!
与之相反的是采用C语言也可以应用面向对象思想分析程序、设计程序和编写程序,比如朱朱胡工作室论文《基于过程语言的面向对象程序开发》。

1.5.3 本次学习的东西在CC++中都可以使用

本次我们学习的编程都是Unix下最基本的应用,或者是生产实践的设计经验,比如系统调用等,虽然是C语言规范,但是C++照样可以调用!所以,C++爱好者照样可以使用C++编译器。
编程浪子:(奸笑!)我骨子里其实是C++爱好者,下次有空我们朱朱胡工作室开坛授C++课罗。



 本文转自 zhuyunxiang 51CTO博客,原文链接:http://blog.51cto.com/zhuyunxiang/162520,如需转载请自行联系原作者



相关文章
|
2月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
72 2
|
25天前
|
算法 编译器 C语言
【C语言】C++ 和 C 的优缺点是什么?
C 和 C++ 是两种强大的编程语言,各有其优缺点。C 语言以其高效性、底层控制和简洁性广泛应用于系统编程和嵌入式系统。C++ 在 C 语言的基础上引入了面向对象编程、模板编程和丰富的标准库,使其适合开发大型、复杂的软件系统。 在选择使用 C 还是 C++ 时,开发者需要根据项目的需求、语言的特性以及团队的技术栈来做出决策。无论是 C 语言还是 C++,了解其优缺点和适用场景能够帮助开发者在实际开发中做出更明智的选择,从而更好地应对挑战,实现项目目标。
49 0
|
2月前
|
C语言 C++
C 语言的关键字 static 和 C++ 的关键字 static 有什么区别
在C语言中,`static`关键字主要用于变量声明,使得该变量的作用域被限制在其被声明的函数内部,且在整个程序运行期间保留其值。而在C++中,除了继承了C的特性外,`static`还可以用于类成员,使该成员被所有类实例共享,同时在类外进行初始化。这使得C++中的`static`具有更广泛的应用场景,不仅限于控制变量的作用域和生存期。
69 10
|
3月前
|
算法 机器人 C语言
ROS仿真支持C++和C语言
ROS仿真支持C++和C语言
98 1
|
2月前
|
C语言 C++
实现两个变量值的互换[C语言和C++的区别]
实现两个变量值的互换[C语言和C++的区别]
29 0
|
4月前
|
编译器 Linux C语言
【C++小知识】为什么C语言不支持函数重载,而C++支持
【C++小知识】为什么C语言不支持函数重载,而C++支持
|
4月前
|
存储 编译器 C语言
C++内存管理(区别C语言)深度对比
C++内存管理(区别C语言)深度对比
85 5
|
3月前
|
编译器 C语言 C++
从C语言到C++
本文档详细介绍了C++相较于C语言的一些改进和新特性,包括类型检查、逻辑类型 `bool`、枚举类型、可赋值的表达式等。同时,文档还讲解了C++中的标准输入输出流 `cin` 和 `cout` 的使用方法及格式化输出技巧。此外,还介绍了函数重载、运算符重载、默认参数等高级特性,并探讨了引用的概念及其应用,包括常引用和引用的本质分析。以下是简要概述: 本文档适合有一定C语言基础的学习者深入了解C++的新特性及其应用。
|
5月前
|
程序员 编译器 C语言
云原生部署问题之C++中的nullptr相比C语言中的NULL优势如何解决
云原生部署问题之C++中的nullptr相比C语言中的NULL优势如何解决
57 10
|
6月前
|
Unix C语言
用C语言打造自己的Unix风格ls命令
用C语言打造自己的Unix风格ls命令