目录:
- 使用制表符
- 语法高亮
- 源代码格式化程序
- 很多
- ,然后暂停半秒(这不是很长!),那么会弹出一个窗口,如图3所示,只有两个代码::块知道这个程序以Acco开头:类
- Code::Blocks环境允许您创建多个构建目标。构建目标允许您创建具有独特构建设置的独立可执行文件。例如,您肯定希望将符号信息包含在用于调试的可执行文件中,但不包含在您打算发送给客户的可执行文件中(请参阅下面的更多信息)。
- 输入新构建目标的名称,释放。
- 将
视频: 33块即可购买服务器一年 2024
代码::块带有默认设置,这对大多数C ++应用程序来说是最自然的;然而,当你开始在环境中花费越来越多的时间时,你可能会发现Code::Blocks只是一个更友好的地方,只需稍作调整即可。
使用制表符
或者更具体地说,不要使用制表符。如果您正在开发一个每个人都将使用Code:: Blocks的项目,则此设置没有任何区别。然而,制表符问题在于不同的编辑者倾向于以不同的方式解释制表符。一些编辑者将光标移动到下一个制表位,一些编辑者将光标移动到一定数量的字符上,并不是所有编辑者都同意要为制表分配多少个字符。幸运的是,所有编辑器都将相同的空格解释,因此告诉Code:: Blocks编辑器总是使用空格,并永远不会在源文件中保存制表符。为此,请选择设置→编辑器。现在选择左边的常规设置,并确保使用选项卡字符未选中。
<! --1 - >语法高亮
语法高亮改变不同类型的结构的颜色,对关键字使用一种颜色,对变量名使用不同的颜色,对字符串使用不同的颜色,等等。这在您输入时避免愚蠢的错误非常有帮助。例如,如果您拼错一个关键字,它不会出现在关键字的颜色。要启用此功能,请选择设置→编辑器→语法高亮。通常代码::块可以从文件名的扩展名中指出语言。如果您使用的是非标准的文件扩展名,请确保通过选择Filemasks将其添加到列表中。另外,您可以从此窗口调整语法高亮选项,以更好地满足您的需求。如果您有某种形式的视力问题,尤其是任何形式的色盲,这一点尤其重要。
<! - 2 - >源代码格式化程序
这可能是老式的,但一个好的程序员应该为他的代码的外观显示一点自豪感。这就要求创建和坚持一个编码标准。更重要的是,在一个大型团队工作时,每个人都应该使用相同的编码标准。否则,代码看起来很乱,因为一个人编写的模块有一个外观,而一个队友编写的模块有不同的外观 - 非常不专业。
在Code:: Blocks中强制遵守编码格式标准非常简单。其代码编辑器将重新格式化您的代码,以适应任何所需的标准。
代码::块源代码格式化程序不会调整变量名称。更糟糕的是,它不会触及你的程序逻辑。所以,如果你编写糟糕的代码,不要责怪Code:: Blocks编辑器。
选择设置→编辑器,然后从出现的列表中选择源格式化程序,得到如图1所示的窗口。预览窗口显示您在实践中的选择。本示例遵循ANSI标准,但您可以从许多其他常用标准中进行选择,也可以选择“自定义”,然后单击“缩进”和“格式”选项卡创建自己的标准。 <1>图1:设置源代码格式化程序可以帮助您统一应用编码风格。
一旦你选择了一个标准,编辑器会试图哄你使用这个标准。例如,如果输入if(true) ,然后按Enter,则编辑器会将光标置于 下方的缩进位置(如果 )。 如果您输入一个大括号,编辑器会将您备份,如果 , 跳到下一行,请将大括号与 中的 i 并缩进。更好的是,一旦你完成了编码,如果你选择了Plug-In→Source Code Formatter(AStyle),编辑器将通过你的模块并重新应用当前的源代码标准。所以,如果你的同事不像你那么小心,不要担心,只需点击几下鼠标,就可以清理干净。 代码缩写
这是一个奇怪的选项。如果你编码很多(阅读:
很多
! ),代码缩写可以节省时间,特别是如果你不是一个很好的打字员。代码缩写允许你输入一些代码字,然后按下Ctrl + J,代码::块编辑器将输入相应的预定义模板,然后填写。 例如,如果您要输入 > Class 中的代码:: Blocks的副本,然后输入Ctrl + J,Code:: Blocks将首先询问你的类的名称,然后填充图2所示的所有东西。 图2:使用源代码缩写可以节省大量的时间,如果你能记得使用它的话!
代码::块带有一组已定义的缩写,但可以通过选择设置→编辑器,然后选择窗口左侧的缩写选项来添加所需的所有缩写。 代码缩写的好处在于,它可以节省大量的输入并自动执行您选择的源代码格式化标准。非常快速的打字员(或者是键盘打字员)可能不会从这个功能中获益太多,但是如果您在键入时没有使用全部十个手指,或者只是在键盘上速度很慢,那么您可能要尝试使用此功能特征。 自动完成
代码::块有这个很酷的功能称为自动完成。输入一些最小数量的字母(默认值是4,但是你改变了)之后,如果你在输入时暂停,Code:: Blocks将会寻找所有以这些字母开始的东西。通过这种方式Code::Blocks可以预测你想要说的是什么。例如,在从傻瓜版的可下载材料中包含的Budget5程序中。如果你输入
Acco
,然后暂停半秒(这不是很长!),那么会弹出一个窗口,如图3所示,只有两个代码::块知道这个程序以Acco开头:类
Account
和typedef AccountPtr 。 既然你的意思是 账户 , 你可以按回车,它会填补我的。 <3>图3:代码::块在这个程序中只找到Acco的两个匹配。第一个是我正在寻找的。 在本例中,您正在创建一个指向 账户 的指针,称为 pAcc
。当您下一次输入 pAcc - > 然后暂停时,Code::Blocks将打开一个列出 Account 的公共成员的窗口,如图4所示。 4:给定一个对象,代码::块将查找可从该对象访问的公共成员。 引用自己的类时,这是一个有趣的功能。更重要的是,从列表中选择意味着你不输入错误或拼写错误的函数名称。 当您输入在库中定义的对象时,此功能真的变得非常有趣。例如,如果您输入 cout。 ,您将获得可用于 cout
对象的公共成员的列表。当你没有文档或者你不知道从哪里开始的时候,这可能是非常有用的。启用所有警告
启用所有警告是没有道理的。在编译时弹出的错误比在运行时必须自己寻找的那些错误更容易找到(duh!)和修复。这就是为什么C ++语法如此挑剔的原因 - 它希望确保在编译之前您已经准确地编码了您想要的内容,并创建一个完全不同的可执行文件。 然而,有一些事情(实际上有很多事情),GNU C ++编译器会在没有评论的情况下修正并继续,如果你愿意的话。例如,在一个函数中定义一个变量并不是一个错误,然后从不使用它。或者在函数的中间放置一个返回值,以便返回后的代码行永远不会被执行。这些并不是错误,但是对于一个不信任的编译器来说,这看起来有点奇怪。 如果GNU编译器看到这两种情况中的任何一种,或者代码中有许多其他可疑的结构,GNU编译器将会生成警告。你应该仔细阅读每一个警告,以确保你了解编译器在抱怨什么,为什么。如果可以,请尝试解决问题,但即使您选择不解决问题,也要理解它。 警告将会发现许多即将成为程序错误的错误。 创建一个新的构建目标
Code::Blocks环境允许您创建多个构建目标。构建目标允许您创建具有独特构建设置的独立可执行文件。例如,您肯定希望将符号信息包含在用于调试的可执行文件中,但不包含在您打算发送给客户的可执行文件中(请参阅下面的更多信息)。
当您创建项目时,您可以非常轻松地创建一个Debug构建目标和一个Release构建目标 - 让向导为您完成所有工作。然而,经常在工作和调试一个项目几个星期之后,你会发现它只是发现没有发布版本的目标。不用担心,你总是可以自己创建一个新的构建目标。
要创建一个新的构建目标,请选择Project→Properties,然后选择Build Targets选项卡。您将看到如图5所示的内容,其中显示了具有单个Debug构建目标的Budget5程序。
图5:其中一个项目属性是构建目标列表。使用以下步骤创建发布构建目标:
选择调试目标,然后单击复制。
输入新构建目标的名称,释放。
将输出文件名更改为binReleaseBudget5。 EXE和对象输出目录objRelease。
点击Build Options来为这个特定的目标设置你想要的任何构建选项,然后点击OK。
您一定要关闭符号信息并打开优化。
单击确定保存新的构建目标。要构建特定的构建目标,请选择“构建”→“选择目标”,然后从可用的目标中进行选择。当你选择构建时,这指示Code:: Blocks作为你想要创建的可执行文件。
-
项目 - 启用优化
-
您可能认为每行C ++代码都会生成一组机器指令,而不考虑其周围的代码行,而在非优化模式下,您将是正确的。内置于GNU编译器的优化器可以通过查看多行代码,从C ++源代码生成更高效的程序。
-
考虑下面的简单和完全组成(但聪明)的例子:
-
// i ++; MOV EAX,i [BP] INC EAX MOV i [BP],EAX // fn(i)MOV EAX,i [BP] PUSH EAX CALL FN
这行
-
i ++
被转换成下面是三行机器码:
将
i
的值加载到EAX寄存器中。
递增EAX寄存器。
将增加的值存回 i 。
-
下一行将呼叫 fn(i) 转换为以下内容。
-
将
-
i 的值加载到EAX寄存器中。 将EAX的值推入堆栈。
拨打电话。注意第4步实际上是不必要的。无需将 i 的值加载到EAX寄存器中,因为步骤1,2和3中的值已经存在。即使是一个普通的优化器也会注意到这个事实,而不会产生第二个
-
MOV EAX,我[BP] 。 这不算什么节省,但这个例子很容易理解,即使这不是一个很大的改进。您将需要成为汇编语言的真正高手,以了解GNU编译器所做的大部分优化。
-
通过选择Project→Build Options,然后选择左侧的Release版本并选择一个优化选项,可以为特定版本启用优化。从技术上讲,有几个优化选项,因为优化器可能需要很多时间。如果你有一个非常大的项目,花费很多时间来优化一个不会经常执行的模块是没有意义的。对于中小型项目,只需启用全面优化 - 您将不会注意到编译所需的额外几秒钟时间。
-
通过选择设置→编译器,然后选择编译器选项卡并选择一个优化案例,可以为所有版本启用此选项;但是,这不是一个好主意。如果您打算使用调试器,则不要在项目的调试版本中启用优化。优化程序执行的代码更改将使程序显示为在尝试逐步遍历时以半随机游走的方式跳转。
项目 - 禁用调试器符号 符号信息仅包含在可执行文件中供调试器使用。这些信息不应该包含在您向用户发布的版本中:它会不必要地增加可执行文件的大小,更糟糕的是,如果要在程序中找到漏洞,就会向黑客发布危险信息。 要禁用发布构建目标中的调试信息,请选择项目→构建选项,然后选择左侧的发布目标。现在确保发布目标的Produce Debugging Symbols [-g]选项被关闭。 (现在是确保Debug构建目标单击此选项的好时机。) Project - 设置程序的参数 有些程序是用命令行参数执行的。代码:: Blocks提供了以下机制,用于在代码:: Blocks环境中执行这样的程序时提供命令行参数:
选择Project→Set Programs'Arguments。
在上部窗口中选择构建目标。在程序参数窗口中输入你喜欢的东西。
选择确定关闭窗口。
当您输入开始或运行时,代码::块将提供这些参数到您的程序。