Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse julia源代码中jl_value_t的含义_Eclipse_Compilation_Julia - Fatal编程技术网

Eclipse julia源代码中jl_value_t的含义

Eclipse julia源代码中jl_value_t的含义,eclipse,compilation,julia,Eclipse,Compilation,Julia,我正试图找到解决Julia源代码的方法,即codegen.cpp。它们使用一个结构jl\u value\t,该结构指向自身: #define JL_DATA_TYPE \ struct _jl_value_t *type; typedef struct _jl_value_t { JL_DATA_TYPE } jl_value_t; 在eclipse中调试源代码时,它似乎不包含任何有用的信息,但是它经常被使用。我应该如何解释这个结构?它包含哪些信息?对我来说,能够用C编写动态

我正试图找到解决Julia源代码的方法,即
codegen.cpp
。它们使用一个结构
jl\u value\t
,该结构指向自身:

#define JL_DATA_TYPE \
    struct _jl_value_t *type;

typedef struct _jl_value_t {
    JL_DATA_TYPE
} jl_value_t;
在eclipse中调试源代码时,它似乎不包含任何有用的信息,但是它经常被使用。我应该如何解释这个结构?它包含哪些信息?

对我来说,能够用C编写动态代码似乎是一个(肮脏的)把戏。所有装箱的Julia值都可以有自己的内存布局,只要它们以指向类型的指针开头,这样C代码就可以在访问该类型定义的任何其他字段之前检查该类型

有一些方便的函数可以检查a
jl\u value\u t*
可能指向的一些常见类型。(例如,
jl_是类型(v)
jl_是长(v)
jl_是符号(v)
jl_是类型变量(v)
jl_是类型变量(v)
)。当您知道指向的对象的类型时,可以从
src/julia.h
将指针投射到正确的结构