我最近开始学习C ++并且来自Ruby环境我发现很难以一种仍然正确编译的方式构建项目,我一直在使用Code :: Blocks这很棒,但缺点是当我添加一个新的头文件或c ++源文件时,它会生成一些代码,即使它只有3或4行,我不知道这些行是做什么的。首先,我想问一下这个问题:
这些线做了什么?
#ifndef TEXTGAME_H_INCLUDED
#define TEXTGAME_H_INCLUDED
#endif // TEXTGAME_H_INCLUDED
我的第二个问题是,我是否需要#include .h文件和.cpp文件,以及按顺序排列。
我的第三个问题是,在哪里可以找到GNU GCC编译器,我相信,它与Code :: Blocks打包在一起,如何在没有Code :: Blocks的情况下使用它?我宁愿用记事本++那种方式开发,因为这是我在Ruby中习惯的,但是由于C ++是编译的,你可能会有不同的想法(请给出建议和观点)
先谢谢,等等。
编辑:我在Windows XP&感谢灯光快速回复!答案 0 :(得分:3)
这是inclusion guard,以防止.h文件被包含两次。除了节省时间之外,实际上通常需要避免两次定义。
你应该只包括.h。 .c文件将以某种形式linked到您的程序中。对于小程序,您可以将所有.c文件传递给gcc,但较大的程序将涉及中间.o文件甚至库(static或dynamic)。
你绝对可以在没有IDE的情况下工作。有许多方法可以在Windows上安装gcc编译器,包括Cygwin和MinGW。我认为Code :: Blocks附带一个gcc可执行文件是正确的,但我不知道它在哪里或版本。
答案 1 :(得分:3)
回答你的问题:
线条包括警卫。它们可以防止在任何给定的翻译单元中多次包含头文件。如果多次包含它,您可能会遇到多个定义错误。
头文件在.cpp文件和其他标头中包含#included。 .cpp文件通常不是#included。
Code :: Blocks附带的C ++编译器称为MinGW GCC,可以在MinGW安装的bin目录中找到。要找到它,请通过资源管理器搜索“g ++”进行Windows搜索。要使用它,您需要将其所在的目录放在搜索路径中。请注意Code :: Blocks附带的编译器版本已经过时了 - 您可以从here获得更新版本。
答案 2 :(得分:1)
这些行使得如果文件是#included两次,一切都将继续工作。这反过来允许您将头文件依赖关系视为一个简单的有向图,这绝对是最简单的。
你没有#include .cpp文件。 (好吧,除非你是一个邪恶的程序员。不要这样做!)
我会让其他人(或谷歌!)告诉你有关gcc的信息,但如果你要描述你正在使用的平台,它可能会有所帮助。
答案 3 :(得分:-1)
除了以下情况,其他人都回答了您的所有问题:
我宁愿用记事本++开发 因为那就是我的意思 曾经在Ruby中使用但是因为C ++是 编译,你可能会有不同的想法 (请就此提出建议和意见 以及)
我认为这是一个非常糟糕的主意。一个完整的IDE,带有集成的调试器,跳转到符号定义,重构功能,分析器,智能感知等,对于任何现实世界的项目来说都是必不可少的。
绝对最好的是Visual Studio * Visual Assist X **。 Code :: Blocks相比之下的pales;)
*如果你在大学学习,你通常可以通过MSDNAA免费获得;否则Visual Studio Express版本是免费的 ** 30天评估期