c++是让人变语言的奴隶,c是让语言变人的奴隶。

不同视角、不同观点、深度探讨,禁止人品和道德攻击
头像
antonym55
帖子: 353
注册时间: 2007-04-03 9:52
送出感谢: 0
接收感谢: 0
联系:

#46

帖子 antonym55 » 2007-07-20 15:35

eexpress 写了:我c++用10年了。结束了。BCB结束了。c++每个公司一套。不断的改,不断的变奴隶。是这个意思。
1. C++ 目前通用的只有一个标准,ISO C++ 98,如果你用的是ISO C++ 那么到那里都是一样的,

只不过,目前还没有一个编译器能完整实现这个标准,即使如此,所有的c++ 编译器还是尽可能向这

个标准为基础看齐。 c++即推出的新标准c++0x 也是遵循 “零开销规则”:你无需为你不用的功能付出代价。

你所说的 “不断的改,不断的变奴隶” 的结论不知是怎么得出来的。


2. C 目前通用的有2个版本C 89 和 C 99,由于历史原因,C89 的项目比 C99 要多一些,

但c99中的一些特性有了更多的进步,restrict 关键字就是一个很好的例子。

c++只有一个标准,楼主就有此结论,那c 的两个标准岂不更.......


3. 基于你的一些观点,我不得不怀疑你所说的"用了10年"c++是怎么用的,

另外,BCB 这个IDE与C++这种程序设计语言,是完全不同东西,请不要混为一谈.


4.程序设计语言,只要能把开发者的设计实现出来就OK了

5.强烈要求楼主给出详细的论证过程
TODO LIST:
1.valgrind:
2.gcov:
3.cppuint:未在Linux中使用
4.PostgreSQL:unixODBC
5.Doxygen:UTF8 中文问题,生成LaTex文档问题
6.LaTex:明确安装问题,UTF8 中文字体问题
magiciany
帖子: 393
注册时间: 2007-04-25 11:49
送出感谢: 0
接收感谢: 0

#47

帖子 magiciany » 2007-07-20 15:50

专业语法课上的C++,后来课程设计用的全是C。。。。。现在的大学教育阿~~~~~
2个都不怎么喜欢,还是喜欢初中捣鼓的BASIC
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#48

帖子 eexpress » 2007-07-20 16:04

引用我的话,没明白我的话。

每个公司的c++的类库,调用规则,参数传入次序,控件细节等,都不同。你写过win的dll? 如果c++被调函数不声明成标准的c的调用,每个不同c++ ide编译的dll,都不能保证被其他c++或者其他语言,比如vb/dephi调用。
c 我一直用,作底层多,我的程序,从手持设备,到x86机器的dll和应用,到银行的unix下的终端,和自己用的单片机设备,都几乎不要任何修改,直接编译的。c 的2个标准,是建立在一个替换的基础上的。也是历史原因。你不要局限于x86机器,世界上到处都是程序,芯片上一样有c++,甚至有basic这样的,那更不能提通用了。

这是经验看到的,经验不是在网上搜罗几篇文章,偷换部分概念,就可以得到的。
当然,这是pk,都欢迎大家继续。说得越多,对大家帮助越多。知识面越广。继续。
● 鸣学
头像
Beetle
帖子: 1637
注册时间: 2005-10-14 16:55
系统: OS X
来自: 江苏
送出感谢: 0
接收感谢: 0
联系:

#49

帖子 Beetle » 2007-07-21 19:52

ee从自己角度看的嘛~~做嵌入式的有人用C++的?偶第一次玩单片机的时候N多人说用汇编,可是看见汇编就头疼,直到某天某人说直接用C就行,而且不用改东西直接上……
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#50

帖子 eexpress » 2007-07-21 20:04

我上面举例了啊。c++的。dll的。我以前什么都作哦。大的管理系统也作的。
忘记说明了,这pk。本来就没说是限制在同一领域的。呵呵。多发表意见。我学多点。
● 鸣学
Enigma
帖子: 209
注册时间: 2007-06-01 22:11
送出感谢: 0
接收感谢: 0

#51

帖子 Enigma » 2007-07-22 10:40

suncanoe 写了:那楼主怎么评价汇编语言?
汇编让你真正成为计算机的主人
当然在做主人前,你要做长时间的奴隶
头像
stlxv
论坛版主
帖子: 8274
注册时间: 2006-05-03 0:39
来自: المريخ
送出感谢: 0
接收感谢: 1 次

#52

帖子 stlxv » 2007-07-22 15:03

eexpress 写了:引用我的话,没明白我的话。

每个公司的c++的类库,调用规则,参数传入次序,控件细节等,都不同。你写过win的dll? 如果c++被调函数不声明成标准的c的调用,每个不同c++ ide编译的dll,都不能保证被其他c++或者其他语言,比如vb/dephi调用。(你可以告诉别人你的编译器编译后是怎样的东西嘛,vb可能调用不了,delphi肯定能调用)
c 我一直用,作底层多,我的程序,从手持设备,到x86机器的dll和应用,到银行的unix下的终端,和自己用的单片机设备,都几乎不要任何修改,直接编译的。c 的2个标准,是建立在一个替换的基础上的。也是历史原因。你不要局限于x86机器,世界上到处都是程序,芯片上一样有c++,甚至有basic这样的,那更不能提通用了。

这是经验看到的,经验不是在网上搜罗几篇文章,偷换部分概念,就可以得到的。
当然,这是pk,都欢迎大家继续。说得越多,对大家帮助越多。知识面越广。继续。
还是pascal好,freepascal到哪里都能编译
PHP是最好的语言!不服来战!
cloudyangel
帖子: 2
注册时间: 2007-07-15 21:28
送出感谢: 0
接收感谢: 0

#53

帖子 cloudyangel » 2007-07-23 10:34

没有怎么用过c或者c++写程序,
但是 还是要支持楼主的,
ls 的太不厚道!
头像
speme
帖子: 723
注册时间: 2005-10-02 8:22
送出感谢: 0
接收感谢: 0
联系:

#54

帖子 speme » 2007-07-24 20:49

stlxv 写了:
eexpress 写了:引用我的话,没明白我的话。

每个公司的c++的类库,调用规则,参数传入次序,控件细节等,都不同。你写过win的dll? 如果c++被调函数不声明成标准的c的调用,每个不同c++ ide编译的dll,都不能保证被其他c++或者其他语言,比如vb/dephi调用。(你可以告诉别人你的编译器编译后是怎样的东西嘛,vb可能调用不了,delphi肯定能调用)
c 我一直用,作底层多,我的程序,从手持设备,到x86机器的dll和应用,到银行的unix下的终端,和自己用的单片机设备,都几乎不要任何修改,直接编译的。c 的2个标准,是建立在一个替换的基础上的。也是历史原因。你不要局限于x86机器,世界上到处都是程序,芯片上一样有c++,甚至有basic这样的,那更不能提通用了。

这是经验看到的,经验不是在网上搜罗几篇文章,偷换部分概念,就可以得到的。
当然,这是pk,都欢迎大家继续。说得越多,对大家帮助越多。知识面越广。继续。
还是pascal好,freepascal到哪里都能编译
为什么不说java,内存大的情况下,java也不慢的.
头像
蓝蓝
帖子: 953
注册时间: 2007-06-09 9:19
来自: 上海
送出感谢: 0
接收感谢: 0
联系:

#55

帖子 蓝蓝 » 2007-07-24 20:50

感觉你是C 的高手
太阳好毒…….
yiyaman
帖子: 47
注册时间: 2007-02-17 22:32
来自: 广东河源
送出感谢: 0
接收感谢: 0
联系:

#56

帖子 yiyaman » 2007-07-26 0:31

不同意楼主
做小程序用C还行,做大项目C++比较好设计管理
头像
magisu
帖子: 202
注册时间: 2005-12-31 21:23
送出感谢: 0
接收感谢: 0

#57

帖子 magisu » 2007-07-26 3:13

各有所长。但是我还是喜欢C++。

我师兄说Linux中文件系统是C++开发的。

事实上很多地方抽象机制非常能解决问题,而STL和Boost是高效开发的捷径。

Qt的signal/slot机制也很优雅。

C感觉代码是很凌乱的。缺乏美感。没有模板元编程也很痛苦。

C++的缺点是编译器的不同导致了大量混乱的命名法,因为要在编译前面向对象,多态,编译后静态编码。结果是不同的编译器采用不同的命名法,最后M$搞了个COM出来。Unix下也是intel,sun,gnu各自不同的命名法,不过基本上g++一统了。偶导师非要我用intel的,我喜欢sun的,我的系统偏偏是g++的。靠!

C在较大的程序上管理还是很痛苦的。

看到有些地方瞎支持楼主,很没有意思。

不过说到底,其实C++也好C也好都是算法的载体,算法好无所谓语言的。当年ken thompson还尝试用fortran写操作系统呢。
老子很生气,后果不严重。
antaur
帖子: 16
注册时间: 2007-07-26 9:28
送出感谢: 0
接收感谢: 0

[闲聊]

#58

帖子 antaur » 2007-07-26 9:58

这样的讨论个人觉得就是饭后没事瞎泡。也就根本分不出个对错。

无论那种语言,最后都是需要编译成机器码来执行的。
C++作为面向面向对象思想的代表。更容易是开发人员对程序在架构上进行驾驭,特别是大的程序。如果是个几万行的小程序。无助轻重,如果是上百万行的大的程序,我很难想象在不使用UML进行设计,而直接在代码层来实现。而UML设计出来的东西,C++比C好的多。

如果争论C++的语法细节,个人觉得那是没有真正对C++产生感觉。不可否认,C++的一些语法特性是比C要复杂。但是要明白,他是是为了提供新的特性,这样的开销是必须的,而且应该是能够让我们接受的。

关于效率高低,完全看程序员的水平了。逻辑合理,数据结构设计的足够优化。用一个好的编译器,两者都可以写出完美的程序。

不可否认,C++能够开发的程序,C也能够开发出来,但是开发周期呢?稳定性呢?可读性呢?是否便于升级和代码复用呢?

学编程,作程序员,最高境界应该是理解系统的架构。设计出优化的数据结构,至于用什么语言来实现。这个不重要,因为,理论上讲,主流的语言都可以实现任何的设计。因为说过了,什么语言最终都是在跑机器码,包括java.

个人感觉,C和C++是每个一立志作程序的人的必修课。因为他们确实太经典了,学好了才能真正用程序的观点来看程序。个人感觉,现在层出不穷的新语言,都是懒人语言,速成语言,降低了程序员的门槛,使得编程从艺术变成了技术。

至于各家都有各家的类库,使用不便的说法,个人感觉那是看自己的了,如果不喜欢,甚至不想学,完全可以不用,C的类库主流的C++编译器都是支持的,其他的是人家送给你的,要不要全看自己,如果不喜欢完全可以自己动手阿。

所以,说人是语言的奴隶,感觉不太合适,人是去驾驭语言的,怎么能让语言驾驭自己呢。
====================
ee是个热心人。在论坛潜了很久了,这个是知道的,但是对于你10年C++经验得出的结论,不敢苟同。故言之。欢迎拍砖。
====================
simulationism
帖子: 3
注册时间: 2007-01-23 17:13
送出感谢: 0
接收感谢: 0

#59

帖子 simulationism » 2007-07-26 12:48

3162073 写了:LS “C++ 脱离类和对象 C++几乎100%就是C的语法 除了细节上的“ 一看你更无知了.. 你的思想难道还是以前C++是不支持模板的年代么? 模板,GP才是现在C++主流应用.. 是不是你之会写类的?..

"C++实现功能的代码规模通常都比C大 但编译出的程序更小"这句是在太可笑了.. 现实情况正好相反~

"堆的分配 C只能用malloc() 它不能调用类的构造函数---无语了,你知道new,delete这些都是以不同方式调用malloc的么?

":你把printf改成"haha" 这样的关键字都可以"无话可说.. printf是关键字?也许你是说标准库?改这个需要编译器源码么?

像你所说的,因为"printf和scanf必须知道输入输出的类型 对象一般都是未预先定义的 所以在灵活性方面 printf和scanf有缺陷".. cout cin就是变相得调用printf和scanf阿,这就是模板和运算符号重载提供的方便... 但你知道编译出来代码冗余和执行效率的不足吗? 你去比较2种版本的hello world 这种简单程序就知道了,这都不知道还在这里乱喷..

还对你最后一句话.. 你肯定没写过底层代码,你在写Kernel时用用模板试试?


说的在理。顶一下阿!
早7点
帖子: 41
注册时间: 2007-06-21 11:00
送出感谢: 0
接收感谢: 0
联系:

#60

帖子 早7点 » 2007-07-26 15:05

继续P....
边看边学C++...
无氧潜水员~
---------------------------------
Intel Core 2 Duo E6320
1GB KingSton DDR2 667 *2
ASUS P5B (P965)
GALAXY 8600GT
SeaGate 250G 7200 RPM
SAMSUNG 940BW
Logitech G5
回复

回到 “深度PK版”