gpt4 book ai didi

Delphi编译器指令列表,我们是否必须将指令放在单元名称之前?

转载 作者:行者123 更新时间:2023-12-03 15:19:40 25 4
gpt4 key购买 nike

我正在使用delphi 7开发应用程序,我刚刚遇到了这个

   {$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O-,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $00100000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}

unit fmMain; // this is the main form of the project

interface

uses
//..all the code is here
end.

我知道有这些Compiler DirectiveDelphi Compiler Directives list

代码的作者在主单元名称之前放置了如此多的编译器指令。

谁能告诉我

  1. 在单位名称之前添加指令有什么用,这会使它们成为全局性的吗?
  2. 我们可以在某些特定情况下创建自己的指令吗?
  3. 编译器指令在哪里定义?

最佳答案

至于该指令是否对整个项目、整个单位、单一功能和具有功能的区域产生影响,每个指令都有所不同。您必须阅读每个指令的文档才能了解其范围。

您询问是否需要将它们放置在单元的开头。您需要考虑指令的范围。另一部分documentation关于 switch 指令有这样的说法:

Switch directives are either global or local:

  • Global directives affect the entire compilation and must appear before the declaration part of the program or the unit being compiled.
  • Local directives affect only the part of the compilation that extends from the directive until the next occurrence of the same directive. They can appear anywhere.

但是,请考虑 DENYPACKAGEUNIT指令(强调我的):

The {$DENYPACKAGEUNIT ON} directive prevents the Delphi unit in which it appears from being placed in a package.

如果该指令具有单元范围的作用域,那么它只需要存在于单元中即可生效。

因此指令放置的位置可能很重要。最重要的是,对于每个指令,您需要了解其范围,为此,您必须查阅该指令的文档。

请注意,如果您希望更改项目设置中的设置,则只需在代码中设置指令。在项目选项中设置选项而不是在代码中设置它们是完全合理的。

<小时/>

您提供的代码中似乎发生了这样的情况:作者输入了 CTRL+O O,IDE 插入了项目选项中定义的各种设置:那一瞬间。

关于Delphi编译器指令列表,我们是否必须将指令放在单元名称之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8893606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com