1 / 85
文档名称:

漫谈C语言及如何学习C语言.doc

格式:doc   页数:85页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

漫谈C语言及如何学习C语言.doc

上传人:xxj16588 2016/6/20 文件大小:0 KB

下载得到文件列表

漫谈C语言及如何学习C语言.doc

相关文档

文档介绍

文档介绍:漫谈 C语言及如何学****C语言 64位平台 C/C++ 开发注意事项在/en/l/ 上例出了28个在64位平台上使用 C/C++ 开发的注意事项,对于进入 64位时代的程序员应该去看看这 28个事项,这些英文读物对于有 C/C++ 功底的朋友读起来应该并不难,我估计大约 20-30 分钟可以精读完一篇(或者更快),下面是这 28个注意事项的列表。相信对大家一点有帮助。 Lesson 01. What 64-bit systems are. Lesson 02. S 云风最近写了一篇博客《C语言的前世今生》。作为长期使用C语言开发网络游戏服务器的程序员,云风是有理由写这样一篇文字,不过还是感觉谈的不够深入, C语言在业界使用的现状没有怎么描写,有些意犹未尽。在这里想比较系统的谈谈个人对 C语言学****方式方法的理解。分别按照书籍、实验环境搭建、网络资源来分别介绍,希望能写的比较完整全面一些,给想学****C语言的朋友一个有价值的参考。为什么要学****C语言?为什么要学****使用 C语言?为什么要学****一个可能比自己都岁数大的编程语言? 我在前面如何学****编程语言的博客文章/pragmatic/20111006/ 里提到,选择一门编程语言, 为什么而学这个目的是最重要的,目的不明确就没法学好。这也是为什么很多学生朋友在大学里必修 C语言却觉得没学明白的原因。因为学****的目的不明确,学****当然也没有动力。还有一个原因是 C语言是工程实践性很强的语言,它不是来自某个研究所某个大学学院,而是实实在在从项目需要中产生,伴随着 Unix 的兴起而流行,语义简明清晰,功能强大而不臃肿,简洁而又不过分简单, 实在是居家旅行工作学****必备之良友。C语言相比 C++ 的优点之一就是最小惊讶原则,一是一二是二,不会在私底下产生一些莫名其妙的额外产物。用 C++ 做个例子,比如这样一个函数原型 void PassWithClassValue(COneClass clsParam1) ,稍微了解 C++ 的朋友都会知道,如果你没有实现 COneClass 的拷贝构造函数,编译器会好心的帮你实现一个,而且在调用这个函数 PassWithClassValue 的时候,偷偷地调用拷贝构造函数产生一个临时对象作为参数传递, 对于某些情况,比如编写操作系统这类必须优化性能的情景下,这些自以为是的东西是非常邪恶的事情。 C语言本身只提供必要的语言特性,其它复杂一点功能如文件处理、数学计算等等都以库函数方式提供,甚至连 malloc 、 fre e 这种必须有的功能,也是以标准库函数的方式提供,而不是作为 C语言核心出现。在伟大的著名的无所不包的《K R》开头部分就提到了, for 其实可以通过 while 来完成, 只不过 for 可以写的更简洁,言外之意,对于 C语言 for 其实不是必要的。跑题一点说,在其它程序语言中 Lua 可以说继承了 C语言简洁的设计哲学,甚至连 continue 这种几乎必备的关键字都一直拒绝加入,在 Lua 的 maillist 以及 wiki 里都提到过 continue 这个问题, Lua 语言维护者认为 continue 对于 Lua 而言不是必要的,也不考虑在后续版本中添加这个关键字。这种简洁哲学也让 C语言的可移植性、便携性特别优秀,也使得很多嵌入式系统依然使用 C语言作为主要编程工作语言。 Java 语言有一个口号:一次编写, 处处运行,就是跨平台这个噱头。实际上 C语言从早期开始就几乎达到了一次编写,处处编译,在 ANSI 在 198 9 年统一了 C语言标准以后(称之为 C89 ),只要特定平台上的编译器完整实现了 C89 标准,而且你的代码没有使用某些特殊的扩展( GCC 以及微软都有自己的编译器特定扩展),那么代码一定可以编译通过,再实现一下操作系统相关的函数库,C语言的移植就是很简单的事情。可以用 Lua 作为例子, Lua 本身是完全遵循 C89 标准,没有使用任何特定扩展,这也保证了有 C语言编译器的平台,都可以编译使用 Lua 。可以编译运行 C语言的硬件平台可以从 A排到Z,真是非常有意思的事情。C语言也是一个比较少见的应用领域极为广泛的语言。比如编写操作系统这种高难问题,只有 C++ 、汇编语言可以做到。C语言可以编写服务器端软件如 Apache 、 Nginx ,或者编写 GUI 程序,如 GTK 。大多数程序语言的第一版是通过 C语言实现,借助前面提到的一次编写处处编译,最大的保证了这些程序语言的可移植性。在 Web 开发领域,C语言的应用相对较少,这也是一种取舍的结果, Web 开发需要使用 PHP 、 Ruby 、 Pytho n 这样的动态语言,可以快速上线快速修改,可以最大程度满足用户时时变