Fluent 中的关键数据结构类型分析

本文详细分析了Fluent中的关键数据结构struct obj,包括其组成部分如联合体as、GC标记和类型编号,并列举了各种数据类型的定义。此外,还介绍了与Domain相关的重要数据结构,展示了其在网格和模型信息存储中的作用。
摘要由CSDN通过智能技术生成

 

Fluent 中最根本的类型要属 struct obj,来看看它的源码先。

 


 

struct obj
{
  union {
    struct {fixnum ncell; struct obj *vcell;} symbol;
    struct {struct obj *car; struct obj *cdr;} cons;
    struct {struct obj *env; struct obj *code;} closure;
    struct {fixnum ncell; struct obj *(*f)();} subr;
    struct {unsigned char data;}  character;
    struct {fixnum data;}   fixednum;
    struct {flonum data;}   floatnum;
    struct {fixnum ncell; fixnum length;} string;
    struct {fixnum ncell; fixnum length;} vector;
    struct {fixnum ncell; short valid;}  continuation;
    struct {fixnum ncell; struct obj *next;} free;
    struct {fixnum ncell;}   port;
    struct {fixnum id; char *data;}  foreign;
  } as;

  Sshortint gc_mark;
  Sshortint type;
};

 

 


 

它由三部分组成:联合体 as,GC 标记和类型编号。

 

其中 as 的变化很多,可以用来表示需要的各种类型数据。

 

下面是一些数据类型的编号:

 

 


 

#define tc_nil  0
#define tc_true  1
#define tc_false 31
</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值