none
编程语言 RRS feed

  • 常规讨论

  • 一.现在我会c#,想问一下c#语言学到什么档次才算精通!!!

    二.想了解底层,学习c语言好还是c++,或者对我的c#有帮助的!!!

    2012年10月11日 12:28

全部回复

  • 你精通汉语吗?写过关于多少汉语声调、语法、结构或者是地域性分支的文章?如果没有,这妨碍过你找工作或者和人交流吗?


    Visual C++ MVP

    2012年10月11日 21:32
    版主
  • 我听说c,c++比c#快,c#底层都被封装了,所以想在深入的学习下c#底层,但是听说学习c,c++对底层有帮助!!!
    2012年10月12日 1:52
  • 我听说c,c++比c#快,c#底层都被封装了,所以想在深入的学习下c#底层,但是听说学习c,c++对底层有帮助!!!

    是的,不同语言适应不同方面,所以它们各有所长。建议你除了把C#语法吃透以外多做项目,掌握OOP设计模式等编程精髓部分。如果遇到和底层打交道的东西,可以用C或者C++封装做一个类库,然后再C#中调用即可。

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年10月12日 2:32
    版主
  •      计算机语言顾名思义就是用来跟计算机沟通的语言(我们就当跟计算机说话),先不说计算机对各种语言的理解速度,个人感觉真正要了解的就是计算机都能为我们做什么,例如:我要做Web开发,那么我首先要去了解Web开发方面的框架与技术,才能通过语言去调用API去告诉计算机我要干什么。再往深了就会对这些框架的原理去深入的研究。这个时候就会发现,越往下面关于操作系统原理方面的知识就越需要。这个时候我就想起了像汇编、C和C++这种底层的语言,想去通过这些语言去了解一些关于底层的知识,了解这些语言的时候就会发现这个层还不够低,为什么?例如:C\C++中的内存管理,内存的分配与释放,这个时候我们就需要了解操作系统的内存管理,例如:程序运行时,在栈中开辟好程序变量与方法的内存空间、内存地址空间与物理内存之间的关系(32位平台下内存地址控件是4GB,应用程序分配内存使用的是内存地址控件,也就是说对应用程序来说有4GB的内存,但是实际上几年前,物理内存还没有那么大的时候,当物理内存满了后,操作系统会把访问次数不频繁的内存数据移动到硬盘来给应用程序提供内存控件,也就是虚拟内存)。有点跑题了,呵呵,在更深入的了解了操作系统原理后,我就可以借助底层语言实现一些有趣的事情,例如:我们可以写段C语言控制台程序,在main函数中访问其他函数中的变量,什么原理?实际上就是在C语言代码中嵌入一段汇编代码,控制栈寄存器(忘记寄存器名字啦),移动到另一个函数对应变量的地址去操作。从而打破了语法限制!所以了解底层也是很有趣的。

        话说回来,在说说语言的性能问题,C\C++这些语言直接通过编译器解析成对应的机器码,操作系统直接解析执行,这样我们在一个平台下生成的程序到另一个平台下可能会出现问题,C#语言编译后会生成中间语言MSIL,在由运行时根据当前的平台生成对应平台可以理解的机器语言。那么中间多做的这些步骤自然会降低速度吧。

         总结下学习与进步的过程,首先就是基本功、再就是招式、在修炼内功。 早日称霸武林 哈哈

    2012年10月12日 9:03