alien關鍵詞主要是爲了C51編譯器與PL/M-51編譯器兼容。
在C51編譯器中調用PL/M-51函數,須使用alien聲明該函數,如下:
extern alien char plm_func (int, char); char c_func (void) { int i; char c; for (i = 0; i < 100; i++) { c = plm_func (i, c); /* call PL/M func */ } return (c); }爲了創建能被PL/M-51程序調用的C51函數,須使用alien關鍵詞聲明,如下:
alien char c_func (char a, int b) { return (a * b); }
PL/M-51函數的返回值和參數類型可爲bit,char,unsigned char,int,unsigned int。C51中alien聲明的函數也可使用其他類型如long,float,以及各種類型指針。
須要注意的是,PL/M-51並不能直接支持32位整型數和浮點數。
在C51程序中調用PL/M-51定義的全局變量,只需像調用C51外部變量一樣聲明extern即可。