我来自基于PHP的背景,我的新年决心是倾听Joel并学习C。
我使用的是基于Windows的PC,我不介意那些专注于Windows的编程虽然我将从控制台应用程序开始。
我试图寻找SO问题,但C标签在热门列表上没有好问题,但是如果您知道一些与此相关的好问题,请不要犹豫,在下面添加它。
SO帖子
答案 0 :(得分:13)
我会按顺序回答你的问题:
另外一点建议:首先尝试坚持并学习标准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的情况下学会完成所有这些工作是一个很好的练习。
但最重要的是,最重要的不是你担心平台,而只是你拿起工具并开始使用它们。没有其他方法可以学习。