我有以下源代码,并且有一行,我无法理解已经进行了转换。有人可以解释一下吗? 我知道转换为整数指针(int *),但这是不同的。 我无法理解最后一行的作用。它返回一个整数指针吗?或者我错了?
const unsigned char sc[] = { 0x01, 0x01, 0x01, 0x01 };
return ((int (*)(void))sc)();
答案 0 :(得分:4)
(int (*)(void))sc
获取数组sc
的地址并将其转换为指向返回int
的函数的指针。
()
调用此函数,并再次返回此函数的返回值(类型int
)。
奇怪的是,似乎意图是在地址0x01010101
调用函数,但它使用数组sc
的地址代替,这可能是一个错误。