大佬教程收集整理的这篇文章主要介绍了也许是函数指针或转换问题.不确定,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
const char String[]="Hello!"; int main() { (*(void (*)()) String)(); //ObvIoUsly,my problem is this line :) return 0; }
$cdecl cdecl> explain (void (*)()) cast unkNown_namE into pointer to function returning void
所以(void(*)())String将字符串转换为函数指针.然后取消引用函数指针以调用底层函数.这条线相当于
void (*fp)() = (*(void (*)()) String)(); (*fp)();
这(在大多数机器上)尝试执行“Hello!”作为机器代码.它可能会在具有虚拟内存的计算机上彻底崩溃,因为数据通常标记为不可执行.如果它没有崩溃,它就不可能做任何连贯的事情.无论如何,这不是有用的代码.
这里唯一要学习的是cdecl工具可以用于理解或编写复杂的C类型和声明.
以上是大佬教程为你收集整理的也许是函数指针或转换问题.不确定全部内容,希望文章能够帮你解决也许是函数指针或转换问题.不确定所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。