我正在阅读一个请求C写的密码的程序。但有一行我不明白是:
if(!OK){
printf("\nWrong password!"); getch();
f = MK_FP(0xFFFF,0x0000); f(); // this line I don't know
}
而f是函数void far (*f)(void)
的指针。有谁能解释谢谢
答案 0 :(得分:8)
此行用于从BIOS(MS-DOS)重启PC。
MK_FP(0xFFFF,0x0000);
构造一个 far 指针(当时为32位)并将其作为指向函数的指针返回。然后在该地址执行f
,重新启动PC。
今天它不适用于现代操作系统。
This program使用它。