从C#的背景中学习C c Learning C from a background in C# 我想扩展自己的编程经验,因此认为学习C(不是C)将是一个不错的主意-我有一个开始的项目(一些使用SDL的简单2D游戏),然后尝试了一下,但是我必须承认我在挣扎。 现在,我认为自己是一名非常有能力的C#开发人员,但是C只是一个完全不同的世界! 没有名称空间。 没有类,我不知道如何构造我的代码。 我了解头文件 相关讨论 只是让您知道:snprintf是可以在C中使用的C函数。证据:在Bug下方的libslack.org/manpages/snprintf.3.html中,您可以看到它是ISO C99函数。 哎呀,...还有可能在您碰到Cobol时... 另外,为什么不使用C呢?您正在使用的SDL应该与C一起使用。 @thyrgle,不,SDL是C库(可以从C使用)。您可能将其与STL混淆了。 您想通过倒退来扩大吗? :P不过,认真地讲,您应该真正尝试使用具有前瞻性的语言(F#有人吗?) @埃德加,克拉根:实际上我认为这是个好主意。您可以在任何方向上加深了解。明智的选择是学习C而不是C,因为从概念上讲,它是一种更纯净的语言。另一个优点是,尽管我们还没有证明F#可以(尽管这样做我会很高兴),但是我们知道C在商业意义上已经取得了不错的成绩。 C胜过C吗?为什么?用C可以做的任何事情,都可以用C来完成,除了一些具有非常简单的解决方法的事情。您想要什么:VLA或std :: vector? C之上的C语言非常有效,因为C#距C语言有很大的距离,可以正确地认为它是另一种语言。 结束语:使用C,C#,F#,Java或其他任何使您浮出水面的东西,但是对于大多数大型项目,我强烈建议您不要使用C。 n 相关讨论 1提及书刊。我认为每个人,无论使用什么语言,都应该阅读该书。这是有史以来最好的编程书籍之一。 我建议您从一本有关C的书开始。不断学习与以前的语言相比,学习一种新的语言不是一个好主意,您最终会学到什么是不同的,而不是新的和独特的。 看看Kernighan和Ritchie的书,或Deitel n n 相关讨论 从技术上讲,C在数学上不是C的超集,而在计算上(如果您这样说的话),所有图灵完备的语言都是等效的。区分这一点很重要,因为使用C编译器时某些C代码将无法编译,并且(显然)C代码将无法使用C编译器进行编译。 我过于简化了:public.research.att.com/~bs/bs_faq.html#C-is-subset n 相关讨论 C#和C具有不同的优势。 C仍然仍然是嵌入式工作的首选工具。试用C有真正的优势。 从C#迁移到C的理由很多,所有嵌入式编程都是用C完成的。作为一种较低级的语言,它可以帮助您了解有关OS和硬件的更多信息。承担C的其他特权和职责是良好的编程经验。或者像我这样,您可以这样做,因为您的老板付钱给您进行转换。