c语言 跨平台,c++跨平台编译
成为一个跨平台的C程序员-C语言-ITeye论坛
最近,我在javaeye上看到了圈子里的朋友,我想实现
“有勇气说自己可以做C,标准C,跨平台”的目标。我身边有很多朋友想学c,我来说说我对这个问题的理解。
跨平台的C程序员曾经是我的目标,但是很多年来,我只有windows和unix下的开发经验,所以我的经验来自这两个平台。
带着具体任务学习。如果你没有具体的任务作为目标,你的学习就没有效率,你所有的知识都停留在写作上。过一段时间,你就基本忘记了。
所以在学习C的过程中,要不断的给自己
已经定下了任务。并且不让这个任务发财和重建。
这里有一个例子:
写五子棋ver 1.0双人游戏用的是unix下的GCC MAKE VIM(跨平台编辑器)。
要完成这个任务,要熟悉C的基本语法,要学会有类或者结构来表达领域概念。这期间尽量少用库(除非万不得已),界面显示是次要问题,在控制台上。
展示一下就好。
符合标准:五子棋可以两个人玩,源码自信给人看,基本符合完整码书的标准:)
目的:GNU的开发环境,C程序对类、指针、基本算法、内存管理的学习。
五子棋ver 2.0(重构ver 1.0)自己学习模板、STL、Boost然后重构之前的ver 1.0版本。尽量使用STL和boost。
管理内存的智能支持。
达标:程序代码行数要减少到原来的50%以下。
目的:初步学习泛型抽象和模板技术,熟悉STL库和BOOST库。
五子棋ver 3.0(增加了保存游戏结果和重置游戏的功能)加上以上两个功能需要做大量的工作。要考虑外部资源不满足的各种情况。
达标:功能上满足要求,能实现破坏性测试(保存的文件不大,棋类文件内容有误)。
目的:研究数据保存、对象序列化、异常、异常安全和外部资源管理。
五子棋ver 4.0(支持网络对战)学习网络编译,基于TCP实现。
五子棋ver 5.0(支持与计算机对战)可以学习算法,提供人工智能能力,有难度等级。
五子棋6.0版(提供可操作界面)可操作界面可以在windows或linux下。也可以考虑用python学习混合编程。另外,这只影响接口层的代码。
达到以上6个版本后,你已经是一个跨平台的标准C程序员了,以后可以自己解决C领域的大部分问题。另外,你这份工作已经是找工作的利器了,所向披靡。
学习过程中注意几点:除了1.0和6.0版本,程序尽量使用标准库,跨平台库要放弃方便的IDE。在unix下,vim gcc gdb make是C开发的主流。
选择性阅读
C里面的书比较多,还有设计领域,网络编程,多线程多进程编程,界面开发等其他资料。太多了。不能全看,但还是可以有选择的看。
书籍一定要区分手册型和系统理论型。
是的。
前者需要的时候可以查,后者需要精读,可以实战后再看。
推荐一些需要精读的书。
《深入理解计算机系统》 《C++ 程序设计语言》 《代码大全》 《C++ 语言的设计和演化》 《C++ Templates 中文版》 《unix环境高级编程》
在我推荐的书单上,找一些http://book.douban.com/doulist/518190/,其他书籍的电子版,或者以后再读。
博客http://zuowj.com
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。