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

关于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暂且搁下)(见第二篇)

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

Published At
Categories with Web编程
Tagged with
comments powered by Disqus