C - 将 char 数组转换为整数指针?
C - Casting char array to an integer pointer?
我有下面的源代码,其中有一行,我无法理解已经进行了转换。谁能解释一下?
我知道转换为整数指针 (int *),但这是不同的。
我无法理解最后一行的作用。它返回一个整数指针吗?还是我错了?
const unsigned char sc[] = { 0x01, 0x01, 0x01, 0x01 };
return ((int (*)(void))sc)();
(int (*)(void))sc
获取数组 sc
的地址并将其转换为指向函数的指针 returns int
.
()
最后调用这个函数,return 这个函数的值(类型 int
)再次被 returned.
奇怪的是,看起来好像是要在地址 0x01010101
调用函数,但它却使用数组 sc
的地址,这可能是一个错误。
我有下面的源代码,其中有一行,我无法理解已经进行了转换。谁能解释一下? 我知道转换为整数指针 (int *),但这是不同的。 我无法理解最后一行的作用。它返回一个整数指针吗?还是我错了?
const unsigned char sc[] = { 0x01, 0x01, 0x01, 0x01 };
return ((int (*)(void))sc)();
(int (*)(void))sc
获取数组 sc
的地址并将其转换为指向函数的指针 returns int
.
()
最后调用这个函数,return 这个函数的值(类型 int
)再次被 returned.
奇怪的是,看起来好像是要在地址 0x01010101
调用函数,但它却使用数组 sc
的地址,这可能是一个错误。