Show off.

CS:APP浮点部分写了一半,比较纠结。
去大波那里看了下,发现他在Qzone留言一个C题目,并且大言不惭的问谁会,于是果断解决了 🙂

      试解释(*(void(*)())0)();  是什么意思?

      很简单的代码,却很有意思,谁会?

记得之前在书上看过,记得不太清楚了,自己又重新试了一下,不知道准不准确。

    (*(void(*)())0) | ();   分离第一步,确定是一个函数,调用"(void(*)())0" 的函数指针使其运行。
    (void(*)()) | 0         分离第二步,确定是一个强制类型转换,使用"void(*)()" 强制类型转换。
    void(*) | ()            分离第三布,确定是一个函数。

   所以他总体的意思是: 运行在内存0位置的函数。
   最早的出处在《C语言陷阱与缺陷》。                    
此条目发表在C, 编程分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注