C编程入门

时间:2009-01-15 12:41:54

标签: c

我来自基于PHP的背景,我的新年决心是倾听Joel并学习C。

我使用的是基于Windows的PC,我不介意那些专注于Windows的编程虽然我将从控制台应用程序开始。

  • 我可以使用什么编译器?为什么?
  • 我可以使用什么IDE?为什么?
  • 哪些其他工具对初学者C程序员有用?
  • 有免费的在线指南吗?

我试图寻找SO问题,但C标签在热门列表上没有好问题,但是如果您知道一些与此相关的好问题,请不要犹豫,在下面添加它。

SO帖子

10 个答案:

答案 0 :(得分:13)

我会按顺序回答你的问题:

  • 我可以使用什么编译器以及为什么? - 通常,在Unix世界中使用gcc,并且因为你说你不介意Windows,最新版本的MSVC(2008)。虽然它不支持C99。 (请记住将项目设置更改为C编译。)
  • 我可以使用什么IDE以及为什么? - 我听说过关于Eclipse的好东西,但是因为我在Windows上,所以我从来没有太多关注它,而且Windows的gcc选项是......不是一流的。 MSVC 2008很好,但是Intellisense并不辜负C#,尽管它在C和C ++中并不重要。我听说他们正在为2010年解决这个问题。
  • 哪些其他工具对初学者C程序员有用? - 将警告级别调到编译器支持的最大值。 (达到合理的标准。)这将有助于您保持良好的编码实践。
  • 有免费在线指南吗? - 是的。我不知道有什么非常好的。获取K&R 2nd Ed.这是一本很棒的书,也是该语言创作者的简短。

另外一点建议:首先尝试坚持并学习标准ANSI C,远离专有扩展。

答案 1 :(得分:7)

您可以尝试使用Visual Studio Express C++ Edition。您可以轻松编写C代码并使用C ++编译器进行编译。我会买一份K& R C并通过它。

编辑:作为Visual Studio的替代方案,您可以查看MinGW.这是一个基于GCC的Win32开发系统。在Visual Studio上声名鹊起的主要原因是,以Unix为中心的C资源在Win32上的工作效果要好于Win32,因为它有许多主要Unix库的端口或克隆,Visual Studio可能提供也可能不提供。没有一些移植工作可能不完全兼容。

答案 2 :(得分:4)

请参阅this stackoverflow post以获取有关C编程的书籍和在线资源的列表,当然还有K&R. - 这实际上是一本非常好的书,而且非常简短。 Win32作品中的经典C是Petzold的Programming Windows

编辑:根据我对tvanoffsson的帖子的补充,MinGW套件适用于控制台应用。此外,我的一位朋友几年前写了C programming tutorial,这在当时非常有名,有时还会出现。

答案 3 :(得分:2)

我在Windows上启动MinGW(或Cygwin),或者在* nix上启动Gcc。如果你想学习C编程和IDE,那么你将无法完成重要的编译过程。

学习像C这样的语言就像其他语言一样。从一些简单的“Hello,World”程序开始并理解它们。转移到你需要实现的小东西。你很快就会熟练掌握核心语言;它非常小,当你开始时,你需要真正意识到的一些事情(指针< =>数组二元性是一个)。

了解开发的预处理,编译和链接阶段。对于hello world来说,它就像

一样简单
gcc hello_world.c

但是在任何大型程序中,您都将执行单独的编译/链接阶段。像MSVC这样的IDE会为您处理这个问题,但您仍然需要了解它。

通过各种方法,找到一个具有良好语法高亮效果的好IDE,但只能使用编辑器功能开始。

答案 4 :(得分:2)

  
      
  • 我可以使用什么编译器?为什么?
  •   

我必须同意,首先手动创建和运行程序(没有IDE的帮助)将是有益的,即使它仅适用于您的前几个小程序。如上所述,GCC非常标准。

  
      
  • 我可以使用什么IDE?为什么?
  •   

我开始使用DevC ++(它很容易使用)。然后,根据您的方向,您将需要选择更复杂的IDE(例如Visual Studio)。

  
      
  • 哪些其他工具对初学者C程序员有用?
  •   

您的IDE的调试器!而不是在任何地方放置“printf”语句(就像许多初学c程序员一样),学习如何使用IDE的调试器。从长远来看,它会为你节省很多时间:)

  
      
  • 有免费的在线指南吗?
  •   

吨。快速谷歌搜索“c编程”将返回大量。 但是,如果您真的想要潜入,我建议您搜索常见的C编程大学课程前缀(例如COP3223)。如果您稍微窥探一下,您将能够找到一些很棒的讲义这将是非常有益的!

答案 5 :(得分:1)

在K& R(又名我的CS课程中的圣经)之后,我会推荐这本书:link text 它涵盖了C的一些棘手部分,并且编写得非常好。你甚至可以获得完成证书。你怎么能打败它呢?

答案 6 :(得分:1)

  

我可以使用什么编译器?为什么?

GCC,因为它是通用的:您可以在Windows,OS X,Linux,Solaris,Haiku,您提及的任何内容以及任何类型的CPU(即架构)上运行它,并且 for any那种CPU。 GCC永远不会过时使用特定于编译器的技能。

对于Windows,那就是MinGW。

  

我可以使用什么IDE?为什么?

Emacs的。按Tab键一次,emacs会自动缩进正确的方式。使用Ctrl- 字母和Alt- 字母轻松完成文本移动,而不是将手一直移到箭头键或向上/向下翻页(尽管你有这个选择)。是的,这听起来很奇怪,但是一旦掌握了它,这是一个福音。颜色很漂亮,易于阅读(与vim的深蓝色黑色评论不同)。

您可能会感谢ecb-minor-mode,它与window-numbering配合得很好。另外,在irc.freenode.net上有一个很棒的IRC频道#emacs。

  

哪些其他工具对初学者C程序员有用?

调试器。请注意,gdb需要一些时间来学习,但是相当不错。

另外:Valgrind。对于检查程序是否存在动态分配的内存错误非常有用。对于查找线程错误(如果需要)也非常有用。

  

有免费在线指南吗?

他们来改变而去。我试着用这个,让谷歌给出答案。

答案 7 :(得分:0)

MicroSofts Visual Studio Express(现在是.net软件包的一部分)是一个出色的IDE /编译器工具集,可以或多或少地免费下载!

我还推荐Kernigen和Ritchies“C编程语言”,这是C ++之前关于C的权威书籍,也是有史以来最好的技术写作之一。

避免使用Bjarne Soustrups“C ++”一书,这是一篇非常难以理解的内容,更多关于如何/为什么定义编程语法而不是如何使用语言。

答案 8 :(得分:0)

using the C++ compiler的唯一问题是它不是直接的C,但我建议学习C ++只是一个很好的学习C。我建议学习C ++,无论Joel说什么....因为他可能认为它们是一样的。指针,指针,指针......

如果你直接弯腰,我会建议你this C book

答案 9 :(得分:0)

如果你要使用K& R C(你应该),那么你想要用于编译器的选项就是gcc。你可以通过Cygwin来做到这一点,如果你还没有基本的熟悉* nix,这也可以帮助你提高你的Unix技能。

对于初学者来说,IDE肯定是矫枉过正的。因此,我建议学习使用vi,emacs,pico或joe。所有这些都可以与Cygwin一起使用,您选择哪一个应该是个人喜好的问题。每个都有自己的学习曲线。稍后,您可能会发现您更喜欢Visual Studio中的一个编辑器(或任何其他IDE)。

在没有IDE的情况下学会完成所有这些工作是一个很好的练习。

但最重要的是,最重要的不是你担心平台,而只是你拿起工具并开始使用它们。没有其他方法可以学习。