返回信息流☆─────────────────────────────────────☆
chentingpc (chentingpc) 于 (Wed Sep 8 13:57:27 2010) 提到:
话说最近新学C++,老师说C++基本是完全兼容C,也就是说C是C++的一个子集。
那么,为啥C++还没取代C呢?
C++,“上升”可以当“C++”用,用类、模板、重载,“下降”也可以当C来用,怎么就不把C给取代了呢?
各位大牛都来说说这是怎么回事呢,C究竟有啥关键元素使它不可替代?
☆─────────────────────────────────────☆
gootyking (『热情一顶乐团』团长|回帖终结者A1) 于 (Wed Sep 8 14:08:31 2010) 提到:
不能吧
【 在 chentingpc (chentingpc) 的大作中提到: 】
: 话说最近新学C++,老师说C++基本是完全兼容C,也就是说C是C++的一个子集。
: 那么,为啥C++还没取代C呢?
: C++,“上升”可以当“C++”用,用类、模板、重载,“下降”也可以当C来用,怎么就不把C给取代了呢?
: ...................
☆─────────────────────────────────────☆
xiecaiji (饼干--ex什么的最讨厌了) 于 (Wed Sep 8 14:16:06 2010) 提到:
C++下降。。怎么个下降法。。当C用的时候就是C了啊。。
☆─────────────────────────────────────☆
chentingpc (chentingpc) 于 (Wed Sep 8 14:26:23 2010) 提到:
有其他区别吧。。ms分不清c与c++的界限。。
【 在 xiecaiji 的大作中提到: 】
: C++下降。。怎么个下降法。。当C用的时候就是C了啊。。
☆─────────────────────────────────────☆
y0192837465 (kimi) 于 (Wed Sep 8 15:52:46 2010) 提到:
感觉不能
☆─────────────────────────────────────☆
rayzl0523 (阿鲁卡多) 于 (Wed Sep 8 16:10:16 2010) 提到:
C++用Linux的创始人Linus(是这个名字么?)的话说是很混乱,面向对象和面向过程都很混乱!
☆─────────────────────────────────────☆
wks (cloverprince) 于 (Wed Sep 8 16:44:16 2010) 提到:
等到有一天,
- 你在你的一个库里实现了100个名字叫foo的函数,而且你还能指出每个foo在mangle以后的实际名字。
- 你知道 complex<double> a,b,c; a=1; b=2; c=(a+b)*(a-b); 或者 string a,b,c; a="foo"; b="bar"; c=a+"baz"+b+a;的过程中一共构造了多少个对象,析构了多少个对象。
- 你知道为什么编译一个只有3个自己定义的类的wxWidget的最简单的HelloWorld窗口程序居然需要长达50秒钟,而等效的GTK+程序只要不到1秒钟。同时你也因此知道了VisualC++里面每次编译都生成的肥硕的pch (pre-compiled header)是干什么用的。
那么C++就能替代C了。
☆─────────────────────────────────────☆
lhclumsy (yy) 于 (Wed Sep 8 21:59:12 2010) 提到:
想了下 c++对象是用c写的吗?嘿嘿 求解
☆─────────────────────────────────────☆
ericyosho (ericyosho) 于 (Wed Sep 8 23:00:42 2010) 提到:
可以取代啊,但是许多嵌入式,没有好的C++编译器啊。
光理论上没用,那不还得有具体的工具么。
☆─────────────────────────────────────☆
easing (easing) 于 (Thu Sep 9 11:15:19 2010) 提到:
呵呵,过度设计的副作用啊,抽象在解决复杂度的同时又引入新的复杂度。
【 在 wks 的大作中提到: 】
: 等到有一天,
: - 你在你的一个库里实现了100个名字叫foo的函数,而且你还能指出每个foo在mangle以后的实际名字。
: - 你知道 complex<double> a,b,c; a=1; b=2; c=(a+b)*(a-b); 或者 string a,b,c; a="foo"; b="bar"; c=a+"baz"+b+a;的过程中一共构造了多少个对象,析构了多少个对象。
: ...................
☆─────────────────────────────────────☆
bupteinstein (相期以茶) 于 (Thu Sep 9 12:47:32 2010) 提到:
【 在 easing 的大作中提到: 】
: 呵呵,过度设计的副作用啊,抽象在解决复杂度的同时又引入新的复杂度。
: 【 在 wks 的大作中提到: 】
: : 等到有一天,
: ...................
是啊。
C++中的很多规定,是为了满足更抽象的程序设计提出来的,这对于更复杂的应用,带来的代价是很小的,但对于本来可以用C来完成的应用,带来的代价是不必要的。
☆─────────────────────────────────────☆
jokerlee (Jackal The Dire) 于 (Thu Sep 9 16:47:29 2010) 提到:
话说C还没取代ASM呢
☆─────────────────────────────────────☆
FadeToBlack (口口口) 于 (Thu Sep 9 23:07:16 2010) 提到:
【 在 wks (cloverprince) 的大作中提到: 】
: 标 题: Re: 【C++能取代C吗?】[讨论]
: 发信站: 北邮人论坛 (Wed Sep 8 16:44:16 2010), 站内
:
: 等到有一天,
:
: - 你在你的一个库里实现了100个名字叫foo的函数,而且你还能指出每个foo在mangle以后的实际名字。
我艹,这个蛋疼……知道这个是为了什么
:
: - 你知道 complex<double> a,b,c; a=1; b=2; c=(a+b)*(a-b); 或者 string a,b,c; a="foo"; b="bar"; c=a+"baz"+b+a;的过程中一共构造了多少个对象,析构了多少个对象。
不关心这个问题很久了
:
: - 你知道为什么编译一个只有3个自己定义的类的wxWidget的最简单的HelloWorld窗口程序居然需要长达50秒钟,而等效的GTK+程序只要不到1秒钟。同时你也因此知道了VisualC++里面每次编译都生成的肥硕的pch (pre-compiled header)是干什么用的。
这个的确不知道,wks大牛解释一下
:
: 那么C++就能替代C了。
:
: --
: 代做C语言作业,男生勿扰,有意者站内联系。
: 免费贴代码:http://wksprivate.appspot.com/pastebin/
: 人品计算器:http://wksprivate.appspot.com/renpincalc/
: 我的私人博客: http://wks-private.blogspot.com/
: 和编程相关的一般在这里:http://cloverprince.javaeye.com/
: ※ 修改:·wks 于 Sep 8 16:54:39 2010 修改本文·[FROM: 114.251.86.*]
: ※ 来源:·北邮人论坛 http://bbs.byr.cn·[FROM: 114.251.86.*]
☆─────────────────────────────────────☆
Christa (Christa) 于 (Fri Sep 10 18:01:48 2010) 提到:
C++应该不能取代C吧,一个是面向对象,一个是面向过程。效率和灵活性方面,C++多数时候不如C.
好像,C++和Java都是用C写的。我认为程序员C是基础,甚至包括ASM。
☆─────────────────────────────────────☆
ATV (ATV) 于 (Fri Sep 10 19:31:42 2010) 提到:
[quote]- 你知道为什么编译一个只有3个自己定义的类的wxWidget的最简单的HelloWorld窗口程序居然需要长达50秒钟,而等效的GTK+程序只要不到1秒钟。同时你也因此知道了VisualC++里面每次编译都生成的肥硕的pch (pre-compiled header)是干什么用的。
[/quote]
我每个项目必定禁用 pch
因为加入新的文件编译就报错了
☆─────────────────────────────────────☆
FadeToBlack (口口口) 于 (Fri Sep 10 20:21:39 2010) 提到:
我也想禁用pch,因为incredibuild总是给警告
【 在 ATV (ATV) 的大作中提到: 】
: [quote]- 你知道为什么编译一个只有3个自己定义的类的wxWidget的最简单的HelloWorld窗口程序居然需要长达50秒钟,而等效的GTK+程序只要不到1秒钟。同时你也因此知道了VisualC++里面每次编译都生成的肥硕的pch (pre-compiled header)是干什么用的。
: [/quote]
: 我每个项目必定禁用 pch
: ...................
☆─────────────────────────────────────☆
wks (cloverprince) 于 (Fri Sep 10 20:43:27 2010) 提到:
pch就是为了解决C++编译慢的问题。就是把编译的中间状态保存下来。
比如,你有一个头文件叫precompiledheader.h,或者叫stdafx.h
那么,你可以让编译器解析一下precompiledheader.h,然后,把这个时候的编译器的状态保存成一个文件,比如叫whatthefuck.pch。然后,只要保证每个.cpp文件的最开头必须是#include "precompiledheader.h",那么,编译器可以直接从那个保存的状态继续编译。所以,编译会快非常多。
precompiledheader.h里面本身可以包含多个别的头文件。包含的越多,“预编译”的过程就越慢,但以后编译会更快。但是,一旦precompiledheader.h本身改变了,就要再“预编译”一次。
【 在 FadeToBlack 的大作中提到: 】
:
: 【 在 wks (cloverprince) 的大作中提到: 】
: : 标 题: Re: 【C++能取代C吗?】[讨论]
: ...................
☆─────────────────────────────────────☆
wks (cloverprince) 于 (Fri Sep 10 20:45:13 2010) 提到:
检查新加入的.cpp文件的第一行是不是#include "stdafx.h"
【 在 ATV 的大作中提到: 】
: [quote]- 你知道为什么编译一个只有3个自己定义的类的wxWidget的最简单的HelloWorld窗口程序居然需要长达50秒钟,而等效的GTK+程序只要不到1秒钟。同时你也因此知道了VisualC++里面每次编译都生成的肥硕的pch (pre-compiled header)是干什么用的。
: [/quote]
: 我每个项目必定禁用 pch
: ...................
☆─────────────────────────────────────☆
zxsword (YNWA) 于 (Fri Sep 10 21:07:28 2010) 提到:
会C++的都是大牛=。=
☆─────────────────────────────────────☆
windam (棒棒糖) 于 (Fri Sep 10 21:07:47 2010) 提到:
或者也可以单独对该cpp文件禁用预编译头
【 在 wks 的大作中提到: 】
: 检查新加入的.cpp文件的第一行是不是#include "stdafx.h"
: 【 在 ATV 的大作中提到: 】
: : [quote]- 你知道为什么编译一个只有3个自己定义的类的wxWidget的最简单的HelloWorld窗口程序居然需要长达50秒钟,而等效的GTK+程序只要不到1秒钟。同时你也因此知道了VisualC++里面每次编译都生成的肥硕的pch (pre-compiled header)是干什么用的。
: ...................
☆─────────────────────────────────────☆
FadeToBlack (口口口) 于 (Fri Sep 10 21:48:36 2010) 提到:
c不会出现这种情况吗?
【 在 wks (cloverprince) 的大作中提到: 】
: pch就是为了解决C++编译慢的问题。就是把编译的中间状态保存下来。
: 比如,你有一个头文件叫precompiledheader.h,或者叫stdafx.h
: 那么,你可以让编译器解析一下precompiledheader.h,然后,把这个时候的编译器的状态保存成一个文件,比如叫whatthefuck.pch。然后,只要保证每个.cpp文件的最开头必须是#include "precompiledheader.h",那么,编译器可以直接从那个保存的状态继续编译。
: ...................
☆─────────────────────────────────────☆
swaa409 (NVIDIA++) 于 (Fri Sep 10 23:01:49 2010) 提到:
很多自称是C++程序员的人实际在用C++的语法写C程序。
其实C、C++根本不是一个东西,虽然语法是继承的
☆─────────────────────────────────────☆
gatusokaka (北京溜) 于 (Fri Sep 10 23:07:07 2010) 提到:
肯定不能
【 在 chentingpc 的大作中提到: 】
: 话说最近新学C++,老师说C++基本是完全兼容C,也就是说C是C++的一个子集。
: 那么,为啥C++还没取代C呢?
: C++,“上升”可以当“C++”用,用类、模板、重载,“下降”也可以当C来用,怎么就不把C给取代了呢?
: ...................
☆─────────────────────────────────────☆
zx0319 (Shane) 于 (Sat Sep 11 00:14:15 2010) 提到:
C++和C比起来,还是比较高级的,不太适合底层开发。而C语言对于底层的支持很强大。
【 在 chentingpc 的大作中提到: 】
: 话说最近新学C++,老师说C++基本是完全兼容C,也就是说C是C++的一个子集。
: 那么,为啥C++还没取代C呢?
: C++,“上升”可以当“C++”用,用类、模板、重载,“下降”也可以当C来用,怎么就不把C给取代了呢?
: ...................
☆─────────────────────────────────────☆
wks (cloverprince) 于 (Sat Sep 11 01:36:56 2010) 提到:
起码GTK+鼓励直接#include<gtk/gtk.h>包含所有的东西。即使这样,那也是瞬间编译完成,比Qt的每次#include<QWidget>然后再#include<QButton>这样分开包含还要快。wxwidget如果全包含了就只能每次预编译50秒了。
【 在 FadeToBlack 的大作中提到: 】
: c不会出现这种情况吗?
: 【 在 wks (cloverprince) 的大作中提到: 】
: : pch就是为了解决C++编译慢的问题。就是把编译的中间状态保存下来。
: ...................
☆─────────────────────────────────────☆
yc (yy.c) 于 (Sat Sep 11 09:37:45 2010) 提到:
这个也用讨论。。。各大论坛早有定论,去搜搜大师们的互批吧~
☆─────────────────────────────────────☆
dragon2000 (龙之梦工作室) 于 (Sat Sep 11 10:29:36 2010) 提到:
现在的嵌入式还真没法用C++取代。想想IC卡的4KB内存容量是什么概念。
【 在 ericyosho 的大作中提到: 】
: 可以取代啊,但是许多嵌入式,没有好的C++编译器啊。
: 光理论上没用,那不还得有具体的工具么。
☆─────────────────────────────────────☆
nancheng2008 (卡太了··) 于 (Sat Sep 11 10:49:33 2010) 提到:
才知道原来大牛这么多呀··
☆─────────────────────────────────────☆
ran09210432 (王燃) 于 (Sat Sep 11 10:55:19 2010) 提到:
不能!
☆─────────────────────────────────────☆
xuwln (william) 于 (Sat Sep 11 11:26:29 2010) 提到:
Linux内核主要是用C写的,部分关键代码用ASM,执行效率很高。
另外C标准库很小,更加适用于嵌入式开发。注意我不是指J2ME这类东东。
易用的东西基本都是以损失性能为前提。
在应用开发这块,C++基本可以取代C了,甚至还有比C++更加易用的语言。
☆─────────────────────────────────────☆
lisanwan (04401留守小分队之三儿) 于 (Sat Sep 11 12:03:38 2010) 提到:
不同类型的工具干不同类型的活儿
☆─────────────────────────────────────☆
yonklee (BUPT_EE) 于 (Sat Sep 11 16:39:04 2010) 提到:
楼主真的是初学者,学深了你就会发现这些只是编程思想上的差异了,面向对象和面向过程的
☆─────────────────────────────────────☆
Guilt (恶魔) 于 (Sat Sep 11 18:02:28 2010) 提到:
【 在 chentingpc 的大作中提到: 】
: 话说最近新学C++,老师说C++基本是完全兼容C,也就是说C是C++的一个子集。
: 那么,为啥C++还没取代C呢?
: C++,“上升”可以当“C++”用,用类、模板、重载,“下降”也可以当C来用,怎么就不把C给取代了呢?
: ...................
抽象程度不一样,效率也不一样
☆─────────────────────────────────────☆
bupteinstein (相期以茶) 于 (Sat Sep 11 18:50:27 2010) 提到:
还是技术版好,四页内容就有好多有用的东西。
☆─────────────────────────────────────☆
yolanda1989 (曼。) 于 (Sat Sep 11 22:42:09 2010) 提到:
一个是面向对象,一个是面向过程
☆─────────────────────────────────────☆
maxwellzcc (skywolf) 于 (Fri Sep 17 23:34:39 2010) 提到:
我汗,大牛,膜拜。
【 在 wks 的大作中提到: 】
: 等到有一天,
: - 你在你的一个库里实现了100个名字叫foo的函数,而且你还能指出每个foo在mangle以后的实际名字。
: - 你知道 complex<double> a,b,c; a=1; b=2; c=(a+b)*(a-b); 或者 string a,b,c; a="foo"; b="bar"; c=a+"baz"+b+a;的过程中一共构造了多少个对象,析构了多少个对象。
: ...................
这是一条镜像帖。来源:北邮人论坛 / cpp / #44246同步于 2010/9/26
CPP机器人发帖
[合集] 【C++能取代C吗?】[讨论]
shenlei
2010/9/26镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。