基于AI智能体与技能架构的招投标合规审查引擎设计与实践
2026/8/4 3:21:01
在使用 gawk 进行扩展开发时,我们会遇到请求类型和实际类型不匹配的情况。此时,访问函数会返回 “false”,并填充实际值的类型,方便扩展程序打印错误信息,例如 “scalar passed where array expected”。虽然可以直接使用函数指针调用 API 函数,但接口不够美观。为了让扩展代码更像常规代码,gawkapi.h头文件定义了一些宏,我们可以在代码中使用这些宏。
扩展 API 定义了一些通用的简单类型和结构,以下是详细介绍:
1.awk_ext_id_t:
typedef void *awk_ext_id_t;当扩展加载时,会从 gawk 接收该类型的值,之后必须将其作为每个 API 函数的第一个参数传回给 gawk。
2.awk_const:
#define awk_const …编译扩展时,该宏会扩展为const;编译 gawk 本身时,扩展为空。这使得 API 数据结构中的某些字段在扩展代码中不可写,而 gawk 可以按需使用。
3.awk_bool_t: <