Chr*_*utz 64
实现编程语言.这不一定非常难 - 我做了一个不能命名的语言 - 但它会迫使你学习C语言的很多重要部分.如果你不想写一个词法分析器和/或解析器你自己,你可以使用lex/flex和yacc/bison,但是如果你打算这样做,你可能想要从一个更小的项目开始.
以更高级别的语言学习一些程序并重写它.如果您使用了大量的Perl/Python/Ruby/Bash脚本,并且在运行时发现滞后时间,请在C中重写它,重点关注性能.
然而,我认为,如果你正在编写一个学习C的程序,那么重新发明轮子会更好.C语言编程就是制作和调整方向盘,如果你只是通过使用抽象方式为你学习C的库来学习C语言,那么你真的不会学习C.它可能更快 - 当你工作的时候在一个真实的C项目中,无论如何,不要重新发明轮子 - 但如果你这样做是为了学习,那么无论如何,要学习轮子的工作原理.
Vin*_*nce 16
我建议通过这些工作:http://projecteuler.net/.当然,有时候在C中做一些低效的事情会有所帮助,以了解蛮力需要多长时间.然后试着想出一个更聪明的方法,真正看到C完美的美!