"字节"和"字节"之间有什么区别?

Tan*_*onk 0 delphi pascal lazarus

我可以用以下方法定义一个字节

a:  byte; 
Run Code Online (Sandbox Code Playgroud)

并且还可以定义如下:

a:  Byte; 
Run Code Online (Sandbox Code Playgroud)

编译器会传递以上两种情况,但是byteByte?的区别是 什么?

Ken*_*ite 13

绝对没有区别.Pascal的所有版本(包括Delphi和Free Pascal)都不区分大小写(除了极少数例外 - 见下文),因此您可以使用以下任何一种 - 它们都完全相同.

a: byte;
a: Byte;
a: bYTe;
A: bytE;
A: BYTe;
Run Code Online (Sandbox Code Playgroud)

Delphi很少有区分大小写,并且H2365覆盖方法%s的文档中描述了这些特定的例外.%s应该与祖先%s的情况匹配.%s:

以下是Delphi区分大小写的一些情况:

单位参考和用途条款

在单元声明和使用子句中,单元名称必须与文件名匹配以防万一.在其他上下文(例如限定标识符)中,单元名称不区分大小写.要避免单元引用的问题,请明确引用单元源文件:

uses MyUnit in "myunit.pas";
Run Code Online (Sandbox Code Playgroud)

注册组件

当您编写自己的组件并且想要注册它们时,您声明的寄存器功能必须如下所示:

procedure Register;  <<-- Leading capital required.  
Run Code Online (Sandbox Code Playgroud)

对于设计时包,Register过程的名称区分大小写.如果您声明了一个注册过程(小写),即使没有发出提示H2365,也不会得到预期的结果; 您的组件未注册.有关更多信息,请参阅使用RegisterComponents过程.

导入外部函数

导入外部函数时,必须保留DLL中使用的确切大小写.

  • 当覆盖方法时,有H2365指出套管的差异.请参阅/sf/answers/542858711/ (3认同)
  • @loki:你错了.只有几个地方Delphi区分大小写,其中一个是`procedure Register`用于将组件注册调用到VCL中,它只是区分大小写,所以组件正确安装到C++ Builder中."析构函数Destroy"和"析构函数destroy"在Delphi中完全相同.用析构函数破坏你所看到的东西; 覆盖;`是**提示**,而不是编译器错误.提示是建议.Google*定义提示*.我怀疑为C++ Builder兼容性(再次)生成提示,但这不是错误. (2认同)