Delphi编译器指令列表,我们是否必须将指令放在单元名称之前?
我正在使用Delphi7开发应用程序,我刚刚遇到了这个问题Delphi编译器指令列表,我们是否必须将指令放在单元名称之前?,delphi,compiler-construction,delphi-7,Delphi,Compiler Construction,Delphi 7,我正在使用Delphi7开发应用程序,我刚刚遇到了这个问题 {$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 ma
{$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.
我知道有这些和
代码的作者将如此多的编译器指令放在主单元名称之前
有人能告诉我吗
- 解释这些原则的关键主题如下:
- 此处列出了编译器指令:
- 全局指令影响整个编译,必须出现在程序或正在编译的单元的声明部分之前
- 本地指令仅影响从指令扩展到下一个相同指令出现的编译部分。它们可以出现在任何地方
但是,考虑指令(强调矿山):
{$DENYPACKAGEUNIT ON}
指令防止将它出现的Delphi单元放入包中
如果本指令的适用范围为装置范围,则只需在装置中出现即可生效
因此,指令放置在何处可能很重要。底线是,对于每个指令,您需要了解其范围,为此,您必须查阅该指令的文档
请注意,如果希望更改项目设置中的设置,则只需要在代码中设置指令。在项目选项中设置选项而不是在代码中设置它们是完全合理的
在您展示的代码中似乎发生了这样的情况:作者键入了CTRL+O,IDE插入了项目选项中定义的各种设置
它们在编译器的源代码中定义。它们记录在编译器文档中,您已经找到了一个栅格链接(您的第二个链接)+1,我想作者按了,cntrl+o,正如您所说..指令列在顶部,为什么delphi会列出所有这些指令?这正是CTRL+o所做的。好的,如果我定义它们,单元指令将接管。。您的意思是
project->Options->compiler
设置将被忽略,并且将使用代码中设置的设置吗?没错,代码中指定的指令将覆盖项目选项设置。你真的应该阅读我答案中的第一个链接。我只是做了,学到了很多我不知道的东西@普莱迪亚斯可以,但你应该总是在上留下$提示+1,我的意思是全局范围内的项目范围,所以对于每个单元,我需要有我需要的指令。不,你可以在项目设置中定义它们。单位中的定义会覆盖项目设置,如果单位中没有定义,则以项目中的设置为准。作者只是无意中点击了Ctrl+O,O