关于USES的理解(50分)

  • 主题发起人 主题发起人 hongsen
  • 开始时间 开始时间
H

hongsen

Unregistered / Unconfirmed
GUEST, unregistred user!


Delphi中的USES语句和C++中的INCLUDE有何异同?它如何保证只包含一次这样的功能,
就象C++中的#ifndef ...#define
Delphi中的USES语句有累积功能吗?即如果UNIT2用到UNIT1,UNIT3用到UNIT2和UNIT1,是否只需要在程序中写上uses Unit3?根据我的测试,必须写uses Unit3,Unit1

造编译和连接时Delphi是如何处理USES中的内容的?
 
没有积累功能,凡是你的程序里用到的都可以users进来,只要自己的程序里不重复就可以了,编译器来保证只包含一次,很方便
 
同意楼上!
 
C中的INCLUDE 就像PASCAL中的{$I},
是把一个文件连进来,USES更抽象一些,其概念来自MODULA-2的模块化思想,
MODULA-2中的模块比PASCAL中的单元还要高级一些,还能在过程中引用,
不知为什么BOLAND不把这一思想引入进来.
 
对我这菜鸟有教育意义。
 
C++ INCLUDE
java import

DELPHI5中分uses在“实现”上下 问题
 
只要自己的程序里不重复就可以了,编译器来保证只包含一次
 
我认为delphi的uses比c的include来的更简单,要用到时就uses不像c的include一层一层
一套一套,烦死人!
 
但是有的时候不能相互在头部USES对放
 
interface 下的uses
与 implementation 下的uses 有何不同?
 
interface 里面的代码要用的(或者interface和implementation都要用的)
的单元 只能放在interface 的uses中
implementation 里面的代码要用的单元 既可以放在interface的uses中,也可以放在
implementation的uses里面,但不能两个都放
 
如楼上的老兄所说 uses 的单元次序 很重要了?
 
uses的确很方便
 
我想我已经理解了USE的用法。正如大家所言,不管一个工程中USE了多少遍,编译器保证只
包含一份代码。而且,只包含所用到的函数的代码。
USE所针对的对象实际上是编译后的单元,这也是为什么很多部件发布者只提供DCU文件。
另外,如果你USE一个没有包含进工程的自定义单元,编译时也会被编译和连接进去。
 
>>如楼上的老兄所说 uses 的单元次序 很重要了?
没错,尝试将Windows和Forms两个换一下位置,看一下SetFocus
 
相当于C中的Include
 
多人接受答案了。
 
后退
顶部