月度归档:2010年05月

为什么每个程序员都要学C语言的五个理由

为什么要学习c语言【转】 我想如果要继续走下去,这个是必须的。

本文翻译自文章:Five more reasons why every programmer should learn。为传递信息之用,原文链接:http://www.jubuu.com/?id=13
1,C 语言不是面向对象语言。因为这一点,任何学习C语言的人必须学会用函数思考问题。当你真正的去学习一门面向对象语言时,就会有C语言的函数学习基础去对 比。这会使学习面向对象编程更容易理解和更有乐趣。


2,用C编程就像进行智力体操。你要顾及到每一件事情,而这在很多其他语言中他会为你处理。你要管理指针,内存分配,和内存回收。你要明白如何处理串,还有动态数据。在其他语言中,所有这些对你来说是隐藏的。你不知道他们如何运行,更不用说改变他们的运行方式了。你得到了使用的便利,失却了对程序的控制和速度。很多情况下,这是笔值得的买卖。其他的情况下就不是这样了。


3,不同情况下你会使用不同的编程语言。某些情况下要求使用Lisp,其他的要Java,还有别的要C++。但是C是你坚实的基础。你可能不会使用它做一 些项目,但是它会帮助提高你的能力,熟练的用其他语言编程。

4,除了汇编语言之外,C代码生成的程序比其他任何语言生成的程序来得更小和运行更快。那么为什么不学汇编语言呢?汇编是一门学了很有用的语言,但是它没有C那样的可移植性,并且其他流行的语言比如JAVA的语法是基于C的,而不是汇编。你仍然应该学汇编,但它并不会证明它会像学C那样有用。

5,如果你想要写一个视频游戏引擎或操作系统,你会需要C。你不能使用C#, Java, 或 Basic来完成这些编程任务。

GET与POST可传递的最大值到底是多少?

       前日,看到这个问题了。 没有深入了解。我的常识里面get最大传递的值为256b,post 是2M。这是很久以前不知在哪看到的。
于是又百度一下。看到两篇文章装过来看看:

浅谈 HTTP中Get与Post的区别

GET方式传值的最大长度

都有些道理。引用其中一些观点:

get
首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系 了。而实际上,URL不存在参数上限的问题HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。   注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度。

【get方式提交数据的大小,http协议并没有硬性限制;而是与浏览器及服务器、操作系统有关。第二篇文章里,就有谈到用apache测试,使用get方式,url最长可达8167b。其中跟帖留言中还有谈到代理的因素在里面,可能url太长还没到服务,就已经被代理拒绝掉了。第一篇的留言讨论很能学到东西哦~ 】

post
理论上讲,POST是没有大小限制的HTTP协议规范也没有进行大小限制,说“POST数据量存在 80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。

  对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个 限制。

  由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:

     1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。
2).IIS 6.0默认上传文件的最大大小是4MB。
3).IIS 6.0默认最大请求头是16KB。
IIS 6.0之前没有这些限制。[见参考资料5]

  所以上面的80K,100K可能只是默认值而已(注:关于IIS4和IIS5的参数,我还没有确认),但肯定是可以自己设置的。由于每个版本的 IIS对这些参数的默认值都不一样,具体请参考相关的IIS配置文档。

【post方式,传送数据最大理论上没有限制,取决于服务器设置和内存大小。】