第八章 创建Callout Library - ZFentry 链接选项

2023-12-29 23:36

本文主要是介绍第八章 创建Callout Library - ZFentry 链接选项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 第八章 创建Callout Library - ZFentry 链接选项
  • `ZFentry` 链接选项
    • 链接简介

第八章 创建Callout Library - ZFentry 链接选项

ZFentry 链接选项

每个 ZFENTRY 语句都需要一个字符串来确定函数参数的传递方式。本节提供可用链接选项的详细说明。

  • 链接简介 — 概述了各种链接类型,并列出了本章讨论的所有链接选项。
  • 使用数字链接 — 描述数字参数的链接选项。
  • 使用 C 链接类型传递空终止字符串 — 描述空终止字符串的链接选项。
  • 使用 B 链接类型传递短计数字符串 — 描述使用 ZARRAY 结构进行计数字符数组的链接。
  • 使用 J 链接类型传递标准计数字符串 — 描述使用 IRIS IRIS_EXSTR 结构进行计数字符数组的链接。
  • 为传统短字符串配置 $ZF 堆 — 描述控制传统短字符串参数传递的内存分配的 IRIS 系统设置。

链接简介

每个 ZFENTRY 语句都需要一个描述如何传递参数的字符串。例如,“iP”指定两个参数:一个整数和一个指向整数的指针。第二个字母大写以指定第二个参数可用于输入和输出。代码最多可以有 32 个实际参数和形式参数。

如果指定大写链接类型(允许用于除 i 之外的所有链接类型),则该参数可用于输入和输出。如果仅指定一个输出参数,则其最终值将用作函数的返回值。如果指定了多个输出参数,则所有输出参数都将以逗号分隔的字符串形式返回。

输出参数不必用作输入参数。如果在所有输入参数之后指定仅输出参数,则可以在不指定任何输出参数的情况下调用该函数。

ObjectScript程序员的角度来看,参数只是输入。实际参数的值由 $ZF 调用计算并链接到 C 例程声明中的形式参数。对 C 形式参数的任何更改要么会丢失,要么可以复制到 $ZF 返回值。

如果 ZFENTRY 宏未指定用作返回值的形式参数,则 $ZF 调用将返回空字符串 ("")。链接声明可以包含多个输出参数。在这种情况下,所有返回值都将转换为单个逗号分隔的字符串。无法区分多个返回参数之间插入的逗号和任何一个返回值中存在的逗号,因此只有最终返回值才应包含逗号。

下表描述了可用选项:

C DatatypeInputIn/OutNotes
inti or 4inone (use P)指定 32 位整数。 i 链接类型仅用于输入。要返回整数类型,请使用 P4P (int *)。输入参数可以是数字字符串(参见注释 1)。
int *p or 4pP or 4P指向 32 位整数的指针。输入参数可以是数字字符串(参见注释 1)。
_int648inone (use 8P)指定 64 位整数。要返回 64 位整数类型,请使用 8P。输入参数可以是数字字符串(参见注释 1)。
_int64 *8p8P指向 64 位整数的指针。输入参数可以是数字字符串(参见注释 1)。
double *dD输入参数可以是数字字符串(参见注释 1)。使用 #D 以基数 2 格式保留双 *(参见注释 2)。
float *fF输入参数可以是数字字符串(参见注释 1)。使用 #F 以基数 2 格式保留浮点数 *(参见注释 2)。
char *1c or c1C or C这是常见的 C NULL 终止字符串(参见注释 3)。
unsigned short *2c or w2C or W这是一个 C 风格的 NULL 终止 UTF-16 字符串(参见注释 3)。
wchar t *4c4C这是一个以 NULL 结尾的 C 风格字符串,存储为 wchar_t 元素的向量(请参阅注释 3 和 4)。
ZARRAYP1b or b1B or B短的8位国家字符串(最多32,767个字符)。
ZWARRAYP2b or s2B or S16位Unicode短字符串(最多32,767个字符)。
ZHARRAYP4b4B存储在 wchar_t 实现的元素中的短 Unicode 字符串(最多 32,767 个字符)(参见注释 4)
IRIS_EXSTR1j or j1J or J8 位国家字符的标准字符串(不超过字符串长度限制)
IRIS_EXSTR2j or n2J or N16 位 Unicode 字符的标准字符串(不超过字符串长度限制)
IRIS_EXSTR4j4Jwchar_t 字符的标准字符串(最多字符串长度限制)(参见注释 4)
  1. i、p、d、f — 当指定数字参数时, IRIS 允许输入参数为字符串。有关详细信息,请参阅“使用数字链接”。
  2. #F、#D — 要以基数 2 浮点格式保存数字,请使用 #F 表示 float * 或使用 #D 表示 double *
  3. 1C、2C、4C — 通过此链接传递的所有字符串都将在第一个空字符处被截断。
  4. 4B、4C、4J — 虽然 wchar_t 通常为 32 位,但 IRIS 仅使用 16 位来存储每个 Unicode 字符。包含较大 wchar_t 值的输出参数将转换为 UTF-16 以分配给 $ZF 返回值。对于 $ZF 输入参数,包含 UTF-16(代理项对)的字符串将扩展为 wchar_t。可以使用 ObjectScript 函数 $WASCII()$WCHAR() 访问真正的 wchar_t 值。

结构和参数原型定义(包括内部定义)可以在包含文件 iris-cdzf.h 中看到。

这篇关于第八章 创建Callout Library - ZFentry 链接选项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/551049

相关文章

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

批处理以当前时间为文件名创建文件

批处理以当前时间为文件名创建文件 批处理创建空文件 有时候,需要创建以当前时间命名的文件,手动输入当然可以,但是有更省心的方法吗? 假设我是 windows 操作系统,打开命令行。 输入以下命令试试: echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% 输出类似: 2019_06

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

每日一练7:简写单词(含链接)

1.链接 简写单词_牛客题霸_牛客网 2.题目 3.代码1(错误经验) #include <iostream>#include <string>using namespace std;int main() {string s;string ret;int count = 0;while(cin >> s)for(auto a : s){if(count == 0){if( a <=