频道栏目
首页 > 资讯 > JavaScript > 正文

JS中指针的用法详情

17-10-31        来源:[db:作者]  
收藏   我要投稿

在JS调用很少有调用指针的地方,但是当直接调用DLL库时,需要用到相关指针。

有char* , void* ,int* struct * 函数指针,指针的指针….等。

1. char *

如下为char * 类型,没有实际的内存地址。就等价于char *.

var m_char = ref.refType('char');

如下为实际的char *地址,先申请内存,然后进行取地址操作。

var m_data = ref.alloc('char');

var m_charPtr = m_data.ref();

2. void *

如下为void* 类型,没有实际的内存地址。就等价于void*.

var m_char = ref.refType('void');

如下为实际的void *地址,先申请内存,然后进行取地址操作。

var m_data = ref.alloc('void');

var m_voidPtr = m_data.ref();

3. int *

int 指针和char 的用法一致。

4. struct *

结构体指针为对结构体的引用。

定义结构体需要先引用ref-Struct模块。

var Struct = require("ref-Struct);

先声明结构体

var m_Struct = Struct({ 'arg1':'int', 'arg2':'int' });

定义一个结构体变量,赋值

var m_StructValue = new m_Struct();

m_StructValue.arg1 = 1;

m_StructValue.arg2 = 2;

取地址

var m_StructPtr = m_StructValue.ref();

5. 函数指针

在JS 中,其实函数名就是一个函数指针。可以直接拿来用。

例如我声明一个回调函数

var dll = require("ffi");

var callBack = dll.callback('bool',['pointer','int','int'],Fun_callback);

其中Fun_callback为函数指针。

可以如下方式来实现

function Fun_callback() { console.log("this is callback!"); }

6. 指针的指针

指针的指针是一个比较绕口的东西。

可以这样理解: 指针1 指向 地址1 , 指针2 指向地址2 ,而地址2的值就是指针1。 那么指针2就是一个指针的指针,也可以称之为二维指针。

先声明一个void *指针

var m_Hand = ref.alloc('void');

var HAND= m_Hand.ref();

再取指针的地址

var ptr = HAND.ref();

相关TAG标签
上一篇:JSP取得绝对路径出现的问题解决方法
下一篇:SQL语句嵌套查询组成、语法规则、表达形式、简单嵌套查询、in嵌套查询
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站