c语言学到什么程度后,就可以考虑学习下一门语言?

赵红武 发布于 2014/03/10 13:53
阅读 2K+
收藏 8
c
一直在学习c语言,但是不了解学到什么程度后就可以着手学习下一门语言,所以在这里发这个贴问一下已经经历过这个阶段的,有深深体会的各位
加载中
1
hphper
hphper
c是一条线,顺着这条线 可以学到很多计算机的知识
0
Brin想写程序
Brin想写程序

开个玩笑说真学会了C语言,就不会考虑换下一个语言了。

你随时可以学其他语言,除了C++,其他都比C语言简单一点。

赵红武
赵红武
我在网上看过,说是c语言编写层功能比较好,但是用来编写其他的的话就都点大才小用了,我不知道这是什么意思。是不好写呢还是不能写?
0
Brin想写程序
Brin想写程序

咱们讨论两个C的编程风格的问题?

1.你写代码的时候,结构体是喜欢在函数里面malloc然后返回指针,还是现用先malloc,然后当参数传递给函数?根据选择,你认为什么时候可以free比较安全?

2.对static变量怎么看?对extern和static有啥看法呢?

如果你明白我其实在问什么,个人觉得你就可以去学其他语言了。

杨同学
杨同学
回复 @赵红武 : 意思是学无止境,很多东西是在实践中积累出来的
赵红武
赵红武
说实话,我还真不是很懂,所以你的意思就是………………
0
张亦俊
张亦俊
然后去学数据结构,操作系统原理,网络,数据库原理啊
赵红武
赵红武
回复 @张亦俊 : thank u
张亦俊
张亦俊
回复 @赵红武 : 写code随时可以写,但如果你打算系统学习一下计算机,这些最好优先看一下,尤其操作系统、数据结构。当然,这是我个人观点。
赵红武
赵红武
只有把你说的学过后才适合写软件吗?我现在好像陷入了一个泥潭死的,不知道怎么办了。不知道应该选择哪一个编译器,还有老是觉得c语言没学好,就不该去学习另一门语言了。
0
貌似高手
貌似高手
随时可以换语言,比如你可以把C换成英语。:-)开个玩笑。当你需要接入其他语言时再换。毕竟文章好,和识字多,不尽相同
赵红武
赵红武
说的有道理,
0
Brin想写程序
Brin想写程序
回复 @赵红武 : 说明你还没有用过C写过一个可以实际使用的程序啊。问题1是用C或者C++写程序最关心的内存回收问题,基本是要写给人用的程序必须面对的第一个问题。还隐含了一个关于堆和栈基本认识,这个基本认识关系到你能否用其他语言写好程序。

问题2,关系到静态存储区还有C语言编译的具体东西,会用extern的指针是实现稍微大一点规模的C程序的必备知识。extern和static也有外部链接和内部链接的基础知识。可以帮助你理解dll库之类的东西。

static这个也是在其他语言中写出线程安全,而且高效率的程序的一个重要知识点,淘宝的java下的fastjson之所以比所有的json处理工具都快,关键点就快在这里。

所以你的C还需要进一步加强,可以从以上两个问题入手再看看书,真正动动手。 可以先放一放数据结构什么的。把gcc和makefile先搞懂。

推荐你了解下libevent和epoll,看看nginx的代码,然后用C写一个httpserver练练手,不到1000行,也就几天时间,也比较有成就感。

Brin想写程序
Brin想写程序
回复 @bjutslg : 所有的tcp程序都可以用libevent和epoll来写啊。。
bjutslg
bjutslg
我最近也在看libevent和epoll 这些源代码要怎么利用学习啊
bjutslg
bjutslg
恩恩 学习了
0
赵红武
赵红武

引用来自“Brin想写程序”的答案

回复 @赵红武 : 说明你还没有用过C写过一个可以实际使用的程序啊。问题1是用C或者C++写程序最关心的内存回收问题,基本是要写给人用的程序必须面对的第一个问题。还隐含了一个关于堆和栈基本认识,这个基本认识关系到你能否用其他语言写好程序。

问题2,关系到静态存储区还有C语言编译的具体东西,会用extern的指针是实现稍微大一点规模的C程序的必备知识。extern和static也有外部链接和内部链接的基础知识。可以帮助你理解dll库之类的东西。

static这个也是在其他语言中写出线程安全,而且高效率的程序的一个重要知识点,淘宝的java下的fastjson之所以比所有的json处理工具都快,关键点就快在这里。

所以你的C还需要进一步加强,可以从以上两个问题入手再看看书,真正动动手。 可以先放一放数据结构什么的。把gcc和makefile先搞懂。

推荐你了解下libevent和epoll,看看nginx的代码,然后用C写一个httpserver练练手,不到1000行,也就几天时间,也比较有成就感。

你可算把我的问题看了出来,你说的一点也不错,正是你说的那样的,还真正从来没用c语言写过一个实际实用的程序,仅仅是会编写一些排序,解方程类的小习题。到现在为止,也就是那种水平,更为严重的是:我不知道再怎么深入学习了。

我试着在网上下过别人的源码,并用vc++6.0编译,我的用意也是想看一下效果,之后再理解程序,但是总是编译不通,缺少一些头文件文件。

还有,你觉得我应该使用哪个编译器比较好。

你对我的问题能够回答这么多,真心感谢你。让我学到了一些东西。

Brin想写程序
Brin想写程序
回复 @赵红武 : 虚拟机是为了linux的环境。。当然还有gcc。原生的环境非常好用。学C从linux出发会容易很多。
赵红武
赵红武
回复 @Brin想写程序 : 安装虚拟机是为了装gcc?gccforwindows我装了好几次都没成功。那么按个linx或uboto也可以吧,也不知道嫩不能装成功,之前也装过,但是没成功
赵红武
赵红武
回复 @Brin想写程序 : 好,谢谢了
Brin想写程序
Brin想写程序
当然是gcc和makefile了。 安装一个centos的虚拟机,用vim写,试一试吧。
0
Brin想写程序
Brin想写程序

引用来自“赵红武”的答案

引用来自“Brin想写程序”的答案

回复 @赵红武 : 说明你还没有用过C写过一个可以实际使用的程序啊。问题1是用C或者C++写程序最关心的内存回收问题,基本是要写给人用的程序必须面对的第一个问题。还隐含了一个关于堆和栈基本认识,这个基本认识关系到你能否用其他语言写好程序。

问题2,关系到静态存储区还有C语言编译的具体东西,会用extern的指针是实现稍微大一点规模的C程序的必备知识。extern和static也有外部链接和内部链接的基础知识。可以帮助你理解dll库之类的东西。

static这个也是在其他语言中写出线程安全,而且高效率的程序的一个重要知识点,淘宝的java下的fastjson之所以比所有的json处理工具都快,关键点就快在这里。

所以你的C还需要进一步加强,可以从以上两个问题入手再看看书,真正动动手。 可以先放一放数据结构什么的。把gcc和makefile先搞懂。

推荐你了解下libevent和epoll,看看nginx的代码,然后用C写一个httpserver练练手,不到1000行,也就几天时间,也比较有成就感。

你可算把我的问题看了出来,你说的一点也不错,正是你说的那样的,还真正从来没用c语言写过一个实际实用的程序,仅仅是会编写一些排序,解方程类的小习题。到现在为止,也就是那种水平,更为严重的是:我不知道再怎么深入学习了。

我试着在网上下过别人的源码,并用vc++6.0编译,我的用意也是想看一下效果,之后再理解程序,但是总是编译不通,缺少一些头文件文件。

还有,你觉得我应该使用哪个编译器比较好。

你对我的问题能够回答这么多,真心感谢你。让我学到了一些东西。

http://nginx.org/download/nginx-1.5.11.tar.gz

读下这个代码。大体学习下人家的编程风格。变量命名方式,为了跨平台用的typedef之类的小技巧。然后慢慢深入的读。

从\nginx-1.5.11\src\core开始读。nginx.c是整个程序的入口,慢慢学习吧。

一开始可以先看ngx_string.c,ngx_array.c这种工具函数库。

然后尽可能理解main里面写的是啥。

还有,以后写自己的程序时候,也可以无耻一点,直接把nginx的工具函数改改名字拿来用,很好用的。

0
码农与厨子
码农与厨子
应该是学会了LISP之后。想学啥学啥
0
wharf_zhang
wharf_zhang
用c写个c的编译器,完工后你就发现你不再需要学习更多语言,你只想创建新的语言。
返回顶部
顶部