jld*_*ont 5 erlang erl-interface
我正在尝试使用ei_get_type()(ei),但我无法找到记录'type'字段的位置.我查看了ei.h,但我能找到的是一个以"ERL_"开头的常量列表.
#define ERL_SMALL_INTEGER_EXT 'a'
#define ERL_INTEGER_EXT 'b'
#define ERL_FLOAT_EXT 'c'
#define ERL_ATOM_EXT 'd'
#define ERL_REFERENCE_EXT 'e'
#define ERL_NEW_REFERENCE_EXT 'r'
#define ERL_PORT_EXT 'f'
#define ERL_PID_EXT 'g'
#define ERL_SMALL_TUPLE_EXT 'h'
#define ERL_LARGE_TUPLE_EXT 'i'
#define ERL_NIL_EXT 'j'
#define ERL_STRING_EXT 'k'
#define ERL_LIST_EXT 'l'
#define ERL_BINARY_EXT 'm'
#define ERL_SMALL_BIG_EXT 'n'
#define ERL_LARGE_BIG_EXT 'o'
#define ERL_NEW_FUN_EXT 'p'
#define ERL_FUN_EXT 'u'
Run Code Online (Sandbox Code Playgroud)
这是正确的清单吗?我不确定,因为er_get_type()的原型对于类型字段有*int**,而ei.h文件定义char以上常量.
注意:'erl_interface'包中使用的其他'常量'未在此处列出.
根据 Erlang 中的其余 c 代码(odbcserver.c、show_msg.c),您应该将其与该值进行比较。
显然,这些是外部二进制格式用来标记元素类型的字节值,putget.h 中的 get8 宏只是返回该值。