aardio 文档
aardio 范例:静态内存结构体
//静态内存结构体
//相关范例:aardio 语言 > 原生类型 > 静态内存结构体
import console.int;
import tcc;
var code = /**
# include <stdlib.h>
typedef struct {
int number;
} TestSturct;
__declspec(dllexport) void test(int len, TestSturct* pStruct[]) {
for (int index = 0; index < len; index++)
{
pStruct[index]->number = 123;
}
}
**/
var c = tcc();
c.compile(code);
import raw.struct;
//创建『静态内存结构体』
testSturct = raw.struct({
int number;
});
/*
aardio 结构体在与原生 API 交互时动态分配内存指针。
但『静态内存结构体』可以分配固定不变的内存指针,调用原生 API 时不需要再动态分配内存。
在 aardio 中读写静态内存结构体的直接成员(不包含成员的成员)会更慢。。
*/
//创建『静态内存结构体』指针数组
var array = { testSturct(); testSturct(); }
//调用 API,『静态内存结构体』可用于 pointer 指针类型。
c.test(2, {pointer items[2] = array } );
//输出值,可以看到 iNumber 已经被 C 语言改掉了
console.log( array[1].number );
Markdown 格式