JS 中指针的用法
来源:互联网 发布:数据库原理中的设计题 编辑:程序博客网 时间:2024/05/21 06:16
在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();
以上均为个人见解,如果建议,请留言,谢谢。
转载请注明出处
- JS 中指针的用法
- C++中“指针的指针”用法
- C++中“指针的指针”用法
- delphi中指针的用法
- delphi中指针的用法
- js中的this指针的用法
- js中的this指针的用法
- js中insertAdjacentHTML的用法
- js 中 setTimeout()的用法
- JS中括号的用法
- JS中showModalDialog的用法
- js中replace的用法
- js中with的用法
- js中replace的用法
- js中replace()的用法
- js中replace的用法
- JS 中getBoundingClientRect()的用法
- js中replace的用法
- 接口增强
- 讲真,海航集团债务违约不足信
- myeclipse配置项目出错[org.springframework.context.annotation.ComponentScanBeanDefinitionParser]
- 1-8·Linux中的挂载啊、用户登陆
- VirtuBox虚拟机与本机的文件共享
- JS 中指针的用法
- java定时任务
- 消息中间件--ActiveMQ的使用与部署
- Python——提取复数类型的数组的的实数部分和虚数部分
- C/C++基本数据类型所占字节数
- [Oracle]Oracle中查询该表中的主键被哪些表引用,该表中的外键来源于哪些表
- Linux环境编译静态库动态库说明
- 程序员单身高达四成 吃早饭有助于涨薪水!
- hadoop记录篇6-数据仓库hive