Ada语言中函数import导入方式
当我们声明一个外部已经实现的函数并且我们觉得没有必要再去自己写实现的时候我们就使用import来导入。
导入方式有:
C/CPP(参数从右往左压栈,调用者来清栈)
Stdcall(参数从右向左压栈,被调用者清栈)
Intrinsic(编译器内置的函数实现)
Pascal,其实和Stdcall差不多,几乎用不上。
示例如下:
procedure System(cmd:String);
pragma import(c,system,"system");
function CreateWindowEx(
dwExStyle:DWORD;
lpClassName:LPCTSTR;
lpWindowName:LPCTSTR;
dwStyle:DWORD;
x,y,width,height:int;
hWndParent:HWND;
hMenu:HMENU;
hInst:HINSTANCE;
lpParam:LPVOID
) return HWND;
pragma Import(Stdcall,CreateWindowEx,"CreateWindowEx");
function Shift_Left(A:Dword;M:Natural) return Dword;
pragma Import(Intrinsic,Shift_Left);
关于Intrinsic说一下,这个东西的存在是由于语言本身没有直接设计左移和右移操作符,因为该
操作不符合强类型要求,所以语言没有像C那样设计。
本文介绍了Ada语言中使用import导入外部已实现函数的方法,包括C/CPP、Stdcall、Intrinsic和Pascal等不同风格的导入方式及其应用场景。
1196

被折叠的 条评论
为什么被折叠?



