C - 将char数组转换为整数指针?

时间:2015-03-06 14:45:51

标签: c casting

我有以下源代码,并且有一行,我无法理解已经进行了转换。有人可以解释一下吗? 我知道转换为整数指针(int *),但这是不同的。 我无法理解最后一行的作用。它返回一个整数指针吗?或者我错了?

const unsigned char sc[] =  {  0x01, 0x01, 0x01, 0x01   };
return ((int (*)(void))sc)();

1 个答案:

答案 0 :(得分:4)

(int (*)(void))sc获取数组sc的地址并将其转换为指向返回int的函数的指针。

最后

()调用此函数,并再次返回此函数的返回值(类型int)。

奇怪的是,似乎意图是在地址0x01010101调用函数,但它使用数组sc的地址代替,这可能是一个错误。