当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [C语言] 关于jmp_buf类型分析
帖子发表于 : 2017-04-20 21:20 

注册: 2014-10-28 14:53
帖子: 59
系统: ubuntu-14.04-LST
送出感谢: 1
接收感谢: 0 次
我在一个c语言实现的minigc源码(https://github.com/authorNari/minigc)的阅读中遇到一个问题。
关于编译jmp_buf类型变量,我已经查过了jmp_buf的含义,并且在google、wiki和stack overflow查询过相关问题没有结果。
疑惑代码如下,gc.c文件内的
代码:
static void
gc_mark_register(void)
{
    jmp_buf env;
    size_t i;
   
    /*
     * 把当前栈的上下文存储到env里
     * 保存env的时候成功返回0
     * 以后可以通过调用longjmp(env, vlu);
     * 返回到最后一次注册到env里的setjmp出,并且此时setjmp返回vlu
     * jmp_buf 本质是一个类数组类型!
     */
    setjmp(env);
    /* TODO 为何会对jmp_buf进行这种hark的操作? */
    for (i = 0; i < sizeof(env); i++) {
        gc_mark(((void **)env)[i]);
    }
}

问题是我们遍历env变量能的得到什么信息呢?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译