首先,非常抱歉打扰了这个帖子,但是鉴于这个帖子里充斥着大量错误信息,我觉得有必要澄清一下。
我们先从为什么在这个特定任务中C#比C 更好这个问题开始讲起:用C#编写一个功能完善的机器人比用C 编写更省时间(C 的调试真是让人头疼)。
这是选择.NET而不是实际代码的唯一好处。
现在我要说的部分可能会让大家有些生气:C 更快(快得多);C 没有沙箱限制;C 可以在任何操作系统上使用(当然,需要使用不同的操作系统特定API,不过如果你担心 fancy 的图形界面会导致全球化代码问题,可以轻松地通过诺基亚的跨平台框架 QT 解决);如果你需要进行任何内存读写操作,C 更优秀,因为它有一个很牛的东西叫做指针。
如果你需要进行一些低级操作或者正在反向分析一个函数并希望测试将参数推送到堆栈以进行调试,这个工具还支持内联汇编。
反向分析任何已编译的应用程序在.NET中(包括C )要容易得多,而且C#本质上就是.NET。
你简直可以下载一个程序,反编译别人的应用程序并查看原始源代码。
不过C 的一个不足之处是需要一点时间学习,而且在调试时可能会很累人(我有过花几个小时调试代码,结果发现只是缺了一个分号。
)。
但是,如果你真心想学习低级语言编程,C 绝对是个不错的选择。
它非常强大,可以用于各种应用,包括控制台应用程序、服务器软件、视频游戏(而且还有制作游戏修改,简直是太有趣了),甚至浏览器的原生插件(比如Unity Player、Flash、DivX等等)。
希望我解答了你的疑惑。
(顺便提醒所有阅读这篇文章的人:如果你觉得我提供了错误的信息,请务必告诉我。
)
希望我给你解答了一些问题。
(对于所有阅读这篇文章的人:如果你认为我以任何方式提供了错误信息,请告诉我。
在给新程序员提供建议时,我尽力保持公正,但我个人更喜欢C ,因为上述原因。
)