首页 > 其他分享 >高级语言调用C接口(一)基础类型与基础类型指针的对应关系

高级语言调用C接口(一)基础类型与基础类型指针的对应关系

时间:2024-11-12 13:15:48浏览次数:3  
标签:short int 基础 unsigned long char 类型 POINTER 指针

基础类型

C变量类型Java变量类型C#变量类型python变量类型arkts变量类型备注
intintintc_intnumber 
unsigned intlonguintc_uintnumber 
shortshortshortc_shortnumber 
unsigned shortintushortc_ushortnumber 
longintintc_longnumber32位系统中,C中的long型占4字节,可以当作int来使用
unsigned longlonguintc_ulongnumber32位系统中,C中的long型占4字节,可以当作int来使用
long longlonglongc_longlongnumberC中long long占用8字节,与Java/C#中的long型等价
unsigned long longlong longulongc_ulonglongnumberJava中使用需要注意符号
floatfloatfloatc_floatnumber 
doubledoubledoublec_doublenumber 
charcharcharc_charnumber 
unsigned charbytebytec_bytenumber 
voidvoidvoidNonevoid 

基本类型数组与指针

C变量类型Java变量类型C#变量类型python变量类型arkts变量类型备注
int*int[]/IntByReferenceref intPOINTER(c_int)Int32Array 
int[]int[]/IntByReferenceint[]POINTER(c_int)Int32Array 
unsigned int*int[]/IntByReferenceref uintPOINTER(c_uint)Uint32ArrayJava中没有无符号数,long占8字节,这里不能使用long[],且使用int[]接收后,要注意符号引起的值变化,用long型接收时,需要按位赋值,不能直接用=
unsigned int[]int[]/IntByReferenceuint[]POINTER(c_uint)Uint32Array同上
short*short[]/ShortByReferenceref shortPOINTER(c_short)Int16Array 
short[]short[]/ShortByReferenceref shortPOINTER(c_short)Int16Array 
unsigned short*short[]/ShortByReferenceref ushortPOINTER(c_ushort)Uint16Array 
unsigned short[]short[]/ShortByReferenceushort[]POINTER(c_ushort)Uint16Array 
long*int[]/IntByReferenceref intPOINTER(c_int)Int32Array32位系统中,C中的long型占4字节,可以当作int来使用
long[]int[]/IntByReferenceint[]POINTER(c_int)Int32Array32位系统中,C中的long型占4字节,可以当作int来使用
unsigned long*int[]/IntByReferenceref uintPOINTER(c_uint)Uint32Array 
unsigned long[]int[]/IntByReferenceuint[]POINTER(c_uint)Uint32Array 
long long*long[]/LongByReferenceref longPOINTER(c_longlong)BigInt64ArrayC中long long占用8字节,与Java/C#中的long型等价
long long[]long[]/LongByReferencelong[]POINTER(c_longlong)BigInt64Array 
unsigned long long*long[]/LongByReferenceref ulongPOINTER(c_ulonglong)BigUint64ArrayJava中使用需要注意符号
unsigned long longlong[]/LongByReferenceulong[]POINTER(c_ulonglong)BigUint64ArrayJava中使用需要注意符号
float*float[]/FloatByReferenceref floatPOINTER(c_float)Float32Array 
float[]float[]/FloatByReferencefloat[]POINTER(c_float)Float32Array 
double*double[]/DoubleByReferenceref doublePOINTER(c_double)Float64Array 
double[]double[]/DoubleByReferencedouble[]POINTER(c_double)Float64Array 
char*char[]/String/CharByReferenceref char/stringc_char_pInt8Array 
char[]char[]/String/CharByReferenceref char/stringc_char_pInt8Array 
unsigned char*byte[]/ByteByReferenceref bytePOINTER(c_ubyte)Uint8Array 
unsigned char[]byte[]/ByteByReferencebyte[]POINTER(c_ubyte)Uint8Array 
void*IntPtrIntPtrc_void_p-arkts目前没有查到资料,后续复杂类型里再介绍

坑开了,一直没有时间去写,今天抽空发个第一篇吧,由于基础变量类型比较简单,各语言调用的示例就不写太多了,arkts需要和napi层联动。另外,arkts中用到数组的地方,都可以直接使用ArrayBuffer,根据需要自行选择即可,使用数组需要双倍内存,ArrayBuffer是直接传地址过去,napi层获取是,如果参数类型是ArrayBuffer就不需要去获取数组相关的信息了,直接对array_buffer的地址操作即可。

标签:short,int,基础,unsigned,long,char,类型,POINTER,指针
From: https://blog.csdn.net/geesehoward20000/article/details/143711700

相关文章

  • lec 02 arm汇编语言基础
    Lecture02:ARM汇编基础Contents为什么学习ARM/ISA汇编从C到汇编理解arm汇编理解机器执行1为什么学习汇编和指令集架构?1.令人困惑的应用表现2.指令集架构ISA(InstructionSetArchitecture)CPU向软件(应用程序和操作系统)提供的接口。理解软件在CPU上的运行(OS设......
  • 基础数据结构【c语言版】之 “图” 详细讲述
    别忘了请点个赞+收藏+关注支持一下博主喵!!!1. 图的定义和术语1.1图的定义**图(Graph)**是由顶点(Vertex)和边(Edge)组成的一个集合,可以表示顶点之间的关系。通常,图可以表示为G=(V,E)G=(V,E)G=(V,E),其中:VVV是顶点集合,表示图中的所有顶点。EEE是边集合,表示图中顶点之间的连接......
  • 云原生-docker安装与基础操作
    一、云原生Docker介绍Docker在云原生中的优势二、docker的安装三、docker的基础命令1.dockerpull(拉取镜像)2.dockerimages(查看本地镜像)3.dockerrun(创建并启动容器)4.dockerps(显示容器)5.dockerstart(启动容器)6.dockerexec(交互模式进入容器)7.退出容器8.......
  • 这可能是最好的Spring教程!即便无基础也能看懂的入门Spring,仍在持续更新。
    开启这样一个系列的原因    这一段时间都在学spring,但是在学习的过程中一直都很难找到一个通俗易懂,又带了学习体系的文章教程,很多地方都不懂,需要自己去慢慢查询和理解,感觉学起来很耗时,所以我自己就像写一个这样能通俗易懂的Spring入门,让其他想我一样的小白也能速通入门。 ......
  • arch——显示当前主机的硬件架构类型
    转自于:https://github.com/jaywcjlove/linux-command,后不赘述arch显示当前主机的硬件架构类型概要arch[OPTION]...主要用途打印机器架构信息;arch命令输出结果有:i386、i486、i586、alpha、sparc、arm、m68k、mips、ppc、i686等。选项--help显示帮助信息并退......
  • 硬件基础18 单稳态触发器、施密特触发器
    目录一、单稳态触发器1、参数计算2、应用场景(1)、定时(2)、延时(3)、噪声滤波二、施密特触发器1、门电路施密特触发器(1)、原理与波形(2)、参数计算2、集成施密特触发器3、应用场景(1)、波形变换(2)、整形抗干扰(3)、幅度鉴别一、单稳态触发器        前面介绍的触......
  • 无人机遥控器基础讲解——CKESC电调小课堂08
     无人机遥控器是控制无人机飞行的重要设备,以下是对其的详细介绍:CKESC-专业级电调研发生产供应商http://www.ckesc.com 一、外观与布局1.通常由两个摇杆、多个功能按钮、一个显示屏和天线组成。2.摇杆一般位于遥控器的中央位置,用于控制无人机的飞行方向和姿态。左右摇......
  • 嵌入式高频面试题:STM32基础外设篇
    1、UART通信的波特率如何进行设置波特率由UART的时钟频率和分频器设置决定,在初始化UART时配置相应的波特率寄存器2、常见的通信接口3、iic总线的原理iIC总线是一种串行双向通信总线,用于连接主机和从设备。它有两种线路分别是时钟线(SCL)和数据线(SDA)主机通过时钟线控制通......
  • 1.redis常见数据类型-列表List
     列表类型-list①.列表list是一个单键多值的Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差②.常用命令插入、删除、获......
  • LangGraph的两种基础流式响应技巧
    在构建复杂的AI应用时,LangGraph作为一个强大的工具,为我们提供了灵活的图结构程序设计能力。今天,我们将深入探讨LangGraph中的一个关键特性:流式响应模式。这个特性不仅能提高应用的响应速度,还能为用户提供更加流畅的交互体验。LangGraph中的流式响应:与传统LLM有何不同?在LangGraph......