免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 14281 | 回复: 60

[C++] 我倒, 现在还争C还是C++啊 [复制链接]

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2014-06-19 15:00 |显示全部楼层
很明显,
C++是做应用的。
C++用来写业务逻辑(这方面被Java等有GC的语言抢了很多份额)的。
做应用,C++到现在为止依然是最强大的语言。写应用,C++可以说是万金油了。
跑VM的代码, 管理各种无法GC的资源(比如Handle)看起来很恶心;
相比之下, 习惯GC的人可以说管理内存很恶心,
但如果使用STL,SharePtr
再小心设计逻辑, C++中真正要显式管理的内存也是很少的。
可以说99.9%的代码, 完全可以被设计成无需显式管理内存的。
剩下的0.1%,
那么在C++应用程序中必须使用显式管理的话,
那么你用Java写同样代码的话, 也只能用很恶心(和管理Hanle类似)的方法来写。


C是适合写OS等基础软件。 除非你愿意用ASM, 不然在这一点上, C是其它语言所无法代替的。
(包括C++,除非你把C++当C用)。
这些软件中,
程序员要直接访问物理内存,物理寄存器,
或(一定程度上)显式处理程序间的链接关系。
以保证将代码放到指定的存贮器的指定的offset上。

当然, C还有一个用途, 就是当胶水,
因为很多程序支持用C来写的部件。

所以说: C和C++是无法比较的, 它们最适合的领域不一样。
单选投票, 共有 52 人参与投票
您所在的用户组没有投票权限

论坛徽章:
276
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
发表于 2014-06-19 15:30 |显示全部楼层
有C++编译器,肯定用C++,只是C++特性用多少的问题

论坛徽章:
43
15-16赛季CBA联赛之四川
日期:2018-10-13 23:26:5015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:36程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
发表于 2014-06-19 15:46 |显示全部楼层
lz你给我找一个常用的只支持C不支持C++的编译器出来?放着C++一大堆多出来的功能不用非要去自虐么?

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
发表于 2014-06-19 16:14 |显示全部楼层
我从来就没觉得C/C++的内存管理有多大的问题。。。

论坛徽章:
11
巨蟹座
日期:2013-12-23 11:12:14双子座
日期:2014-08-28 09:14:55子鼠
日期:2014-07-25 16:21:22摩羯座
日期:2014-07-23 15:17:47摩羯座
日期:2014-05-30 13:09:05午马
日期:2014-04-30 18:10:00天秤座
日期:2014-04-25 12:12:00申猴
日期:2014-04-22 11:30:15午马
日期:2014-03-07 16:06:40辰龙
日期:2013-12-25 18:36:00摩羯座
日期:2014-09-02 17:00:55
发表于 2014-06-19 16:36 |显示全部楼层
lz我是来打酱油的~

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2014-06-19 21:09 |显示全部楼层
楼主我要开始学golang研究server了

论坛徽章:
0
发表于 2014-06-20 09:02 |显示全部楼层
本帖最后由 新用户_请注册 于 2014-06-20 09:03 编辑

回复 1# folklore


    一旦证明用宏可以实现模板的所有功能后,C++就没法跟C比了
http://bbs.chinaunix.net/thread-4142330-1-1.html

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2014-06-20 10:39 |显示全部楼层
回复 3# windoze


    没仔细看帖子吧, 我是说C适合于写基本软件,
所谓的基本是指: 没有CRT的软件, 或者要自已构建CRT的环境。
在这些环境中, C++的很多特性是(至少在初始化时)无法使用的,
因为没有CRT。。
而C的就算没有CRT,
构建C的最基本的运行环境还是比较简单的。
因为C的很多平台有二进制接口的标准。
最简单地说它的mangling是标准的。
只要建个堆栈, 最最基本的CRT就算是完成了。。。
而C++在这方面几近于没有希望。
很多时候你不知道C++在后面如何实现了语言细节。
而这些细节决定了平台相关代码的可行性。

论坛徽章:
0
发表于 2014-06-20 10:40 |显示全部楼层
c++最初的目的是代码重用,项目重用。
作者自己说过,大意是: 1 c语言要重用的话,把.h .c合并到项目里,接口是大量的extern, 很难管理。 2 如果.c文件过长,看代码麻烦,管理很麻烦。
从发明者本义理解看,c++更应该看做是lib, com这些算成一类技术。

后来有些人追求技巧,有些偏离发明者本义了。 不过倒是把c++本身丰富了很多。c++功能多,按需使用就是了,这个就象去饭店吃饭一样,几十几百个菜,你吃两个就饱了,其他的菜看两眼就行,还都要点下来吃?

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
发表于 2014-06-20 10:45 |显示全部楼层
C++提供了大量C没有的特性,其目的是引诱C用户转投C++。一旦开始使用C++的新特性,就会一发不可收拾,还想更多的特性,就像吸毒一样,总是不满足。到了最后,就会写出既没效率,又难维护的代码。这就是C++的最大问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP