当前位置:天才代写 > tutorial > C语言/C++ 教程 > (*(void(*)())0)()

(*(void(*)())0)()

2017-11-02 08:00 星期四 所属: C语言/C++ 教程 浏览:750

(*(void(*)())0)(),这是在C陷阱与缺陷中,关于办理计较机开机启动后,硬件读取首地点为0位置的子例程的代码。

先看(*fp)(),fp是一个函数指针,*fp就是该指针所指向的函数,(*fp)()就是挪用该函数的方法。

我们凭据题目要求假设可以的话,则字面上可以写成(*0)();可是,正如(*fp)(),运算符*必需要一个指针来作操纵数,而且是函数指针,这样颠末运算符*浸染后的功效才气作为函数被挪用。因此 ,需要对0举办范例转换,转换后的意思可以描写为:指向返回值为void范例的函数的指针,其等价于( void (*) () )0。(*0)()加上0转换后的范例为(*(void(*)())0)()。

虽然,一下方法的书写可以使表达更明晰:

typedef void (*func)();//界说了一个指向返回值是void范例的函数指针

(*(func)0)(); //用上面的指针实现强制转换

 

    关键字:

天才代写-代写联系方式