当前位置:  开发笔记 > 编程语言 > 正文

学习C的有趣项目?

如何解决《学习C的有趣项目?》经验,为你挑选了5个好方法。

我有一些C的基本知识(以及更多的C++).我得到了K&R的副本,我想用它来帮助我深入挖掘语言.什么是一个好主意,将涉及使用大多数C的功能和标准库?另外,我应该注意C89和C99之间的重要区别?

编辑:忘了提,这对于初学者来说应该是可行的.我不是要求编程教程; 相反,中等规模的东西.我知道操作系统的东西是C的主要目的之一,但这不会太复杂吗?

此外,阅读和回答问题总是一个好主意,但我想得到一些实际的练习,制作一个可以做事的程序.



1> Chris Lutz..:

实现编程语言.这不一定非常难 - 我做了一个不能命名的语言 - 但它会迫使你学习C语言的很多重要部分.如果你不想写一个词法分析器和/或解析器你自己,你可以使用lex/flex和yacc/bison,但是如果你打算这样做,你可能想要从一个更小的项目开始.

以更高级别的语言学习一些程序并重写它.如果您使用了大量的Perl/Python/Ruby/Bash脚本,并且在运行时发现滞后时间,请在C中重写它,重点关注性能.

然而,我认为,如果你正在编写一个学习C的程序,那么重新发明轮子会更好.C语言编程就是制作和调整方向盘,如果你只是通过使用抽象方式为你学习C的库来学习C语言,那么你真的不会学习C.它可能更快 - 当你工作的时候在一个真实的C项目中,无论如何,不​​要重新发明轮子 - 但如果你这样做是为了学习,那么无论如何,要学习轮子的工作原理.


这个项目的资源都在这里找到:http://stackoverflow.com/questions/1669/learning-to-write-a-compiler

2> Martin v. Lö..:

在StackOverflow上阅读和回答C问题是学习语言细节的好方法.



3> Vince..:

我建议通过这些工作:http://projecteuler.net/.当然,有时候在C中做一些低效的事情会有所帮助,以了解蛮力需要多长时间.然后试着想出一个更聪明的方法,真正看到C完美的美!



4> Ray..:

一个简单的语法语言的解释器.当然不应该使用词法分析器/解析器生成器来使其有趣.



5> Rui Craveiro..:

打造国际象棋比赛.这可能非常简单,因为您甚至可以使用普通控制台进行操作.它可以让您实现一些逻辑,使用数据结构,使用指针等.存储分数,以便您可以使用持久性.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有