关于NULL,nil,0(其实都知道,只不过我把他整理成册了)(一)

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

关于NULL,nil,0

用过C++的Delphi的程序员都知道,C++中的NULL在Delphi中为nil,意思是空指针

在C++中 为 (void*)0 在Dlephi中 为 Pointer(0)

但是,这不是绝对,因为Handle

在C++中Handle,是一个指针

在Delphi中Handle,被理解为一个整数了,于是一切差别就从这里开始

先看一个函数吧! CreateWindow

在C++的申明为:

HWND CreateWindow(

LPCTSTR lpClassName, // pointer to registered class name

LPCTSTR lpWindowName, // pointer to window name

DWORD dwStyle, // window style

int x, // horizontal position of window

int y, // vertical position of window

int nWidth, // window width

int nHeight, // window height

HWND hWndParent, // handle to parent or owner window

HMENU hMenu, // handle to menu or child-window identifier

HANDLE hInstance, // handle to application instance

LPVOID lpParam // pointer to window-creation data

);

让我们来看看有几个指针(7个,返回值,前两个参数,后四个参数)

让我们再来看看在Delphi中的申明:

function CreateWindow(

lpClassName: PChar; // pointer to registered class name

lpWindowName: PChar; // pointer to window name

dwStyle:Integer; // window style

x: Integer; // horizontal position of window

y: Integer; // vertical position of window

nWidth: Integer; // window width

nHeight: Integer; // window height

hWndParent: Integer; // handle to parent or owner window

hMenu: Integer; // handle to menu or child-window identifier

hInstance: Integer; // handle to application instance

lpParam: Pointer // pointer to window-creation data

): Integer;

有几个指针呢?(有三个,前两个和最后一个参数)

如果在调用此函数时,夸张一点,将所有指针(以C++)全用NULL代替的话,在Delphi中,函数调用应是这样的:

hWnd:= CreateWindow( ’’,’’, ws_Child, 0,0,100,100,0,0,0,nil); //此函数只是例子

可见如果NULL指的是Handle的话,在Delphi中,它等价与0;其他吗?等价于nil(PChar暂且搁下)(见第二篇)

以上是我的一些看法,愿大家指正

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航