我遇到了这种语法,我无法知道如何开始理解这一点.
如何开始解码这样的c编程代码.
(*(void(*)())0)();
我试图编译此代码,它编译时没有任何警告或错误.所以它似乎是c编程的有效语法.
打破如下:
(void(*)())
代表一个演员阵容0
.这是一个指向具有返回类型的函数的指针void
,可以包含任意数量的参数.
( void (*) ( ) ) ^ ^ ^ | | | | | | | | | | | | + | + Return type | Function | Pointer
*(void(*)())0
正在解除引用地址0x00000000
.我认为它的功能在那里.
(*(void(*)())0)();
调用该函数.