现在国外C语言公开的资料比较多的好像还是GNU和一些大学院系的。主要是GNU C有GCC的魔改,好像根本不是国内的计算机教育那样还在流行的,而是延续lisp时代过来的那种面向机器性能的符号处理那种路数在coding了。
另外一支则是嵌入式软件开发,好像基本不需要啥人工智能之类的讨论,就是搞搞结构体、循环和算法,国内很多搞C语言的就是这种路数的C语言。国内搞算法的和这一只好像关系也比较亲。
C++是另外一套,主要是所谓比较大型而且需要通过数据抽象的项目在跑,而且很多类库要用起来才算事。虽然现在好像很多高校大一就是学C++甚至C语言都不学了。
我假设你是从嵌入式开发那支过来的。我觉得主要的问题在于:
* c语言在语言层面一般来说是不适用一些很“动态”的特性的,也没有各种重载。这就是说你一开始就要把数据模型考虑的比较硬一些还是啥的。然后注意一下跨平台移植、数据的长度和机器的字长、底层操作的优化,等等。主要的知识点可能是函数,结构体,指针,然后表达式,运算,变量常量,这类的,java的考虑不会这么native。然后还有宏,内敛汇编,ld和gcc或者其他的编译环境,标准库,可能用得着的库。
* c++应该主要是他的各种语言中的模板,相对java来说c++的重载是很有特色的,是有数学背景的,然后各种package/class/standard都会给实践带来不一样的东西。c++很重口。c++没有做的比较好的非盈利的IDE项目好像,商业项目好像在国内都在msvc上面跑,各种支持好像也不少。我感觉c++最难的东西是“流”,然后怎么在代码层面实现数据、程序、运行状态的“可配置”。国内好像很少见到单纯研究c++的声音,例如c++的抽象机,主要是各种项目,比如opencv,虚拟化,游戏,网络,还是怎么地。
不一定有用。
【 在 kuwo 的大作中提到: 】
: 有多年java经验,现在要搞些语音视频方面的工作,请问如何快速学习c和c++呢,本人已经学习了16位汇编了,学完了c 感觉还是很多代码看不懂啊,求大神不吝赐教。
: - 来自「最水木 for iPhone 7」
--
修改:darkk FROM 120.239.34.*
FROM 120.239.34.*