W***o 发帖数: 6519 | 1 以前只是懂c的基本语法比如if, while....,没真正写过project, 连hello world都没
写过。
最近advanced OS上课需要写一个user level threads library,
在两周之内从学c到写完project,觉得pointer这东西太好使了,void pointer好像是
万能钥匙,全局的,指哪儿打哪儿。
回过头来看看,其实这个library也不难,就是先要造个scheduling engine控制流向,
再写一个queue data structure,然后就完了。最大的感触就是逻辑要清楚,pointer,
callback会用了就基本上能做出了,还有gdb, valgrind,vim是好工具,大牛
见效,谢谢帮助 | d****i 发帖数: 4809 | 2 哈哈,写C确实有时会越写越high的,尤其当写到和硬件接壤的时候,似乎能听到阵阵
有力的金属声。。。
pointer,
【在 W***o 的大作中提到】 : 以前只是懂c的基本语法比如if, while....,没真正写过project, 连hello world都没 : 写过。 : 最近advanced OS上课需要写一个user level threads library, : 在两周之内从学c到写完project,觉得pointer这东西太好使了,void pointer好像是 : 万能钥匙,全局的,指哪儿打哪儿。 : 回过头来看看,其实这个library也不难,就是先要造个scheduling engine控制流向, : 再写一个queue data structure,然后就完了。最大的感触就是逻辑要清楚,pointer, : callback会用了就基本上能做出了,还有gdb, valgrind,vim是好工具,大牛 : 见效,谢谢帮助
| d***a 发帖数: 13752 | 3 呵呵...当年第一版用C语言重写的Unix,是在PDP-7机器上开发的。
那机器只有8K个字的内存。为了能让编译器顺利编译,C语言必须精
练才行。为了有高性能,也必须能直接和硬件打交道。
【在 d****i 的大作中提到】 : 哈哈,写C确实有时会越写越high的,尤其当写到和硬件接壤的时候,似乎能听到阵阵 : 有力的金属声。。。 : : pointer,
| W***o 发帖数: 6519 | 4 以前写java, python, BASH 的脚本比较多,尤其是前两种语言一般都是在IDE里写,有
auto complete,对比一下C在vim里面写,确实要懂其中的一些header用法。IDE 确实
方便,但可能也会把人给变傻了。
下面一个project是sync barrier,也要用C写,可能会更贴近硬件一些 :)
【在 d****i 的大作中提到】 : 哈哈,写C确实有时会越写越high的,尤其当写到和硬件接壤的时候,似乎能听到阵阵 : 有力的金属声。。。 : : pointer,
| a*****g 发帖数: 19398 | 5 hehe 多玩一玩,认识的高度会增加的
pointer,
【在 W***o 的大作中提到】 : 以前只是懂c的基本语法比如if, while....,没真正写过project, 连hello world都没 : 写过。 : 最近advanced OS上课需要写一个user level threads library, : 在两周之内从学c到写完project,觉得pointer这东西太好使了,void pointer好像是 : 万能钥匙,全局的,指哪儿打哪儿。 : 回过头来看看,其实这个library也不难,就是先要造个scheduling engine控制流向, : 再写一个queue data structure,然后就完了。最大的感触就是逻辑要清楚,pointer, : callback会用了就基本上能做出了,还有gdb, valgrind,vim是好工具,大牛 : 见效,谢谢帮助
| a*w 发帖数: 4495 | 6 地瓜大师高屋建瓴
【在 d***a 的大作中提到】 : 呵呵...当年第一版用C语言重写的Unix,是在PDP-7机器上开发的。 : 那机器只有8K个字的内存。为了能让编译器顺利编译,C语言必须精 : 练才行。为了有高性能,也必须能直接和硬件打交道。
| c******o 发帖数: 1277 | |
|