LabVIEW 类型描述符

news/2025/11/4 15:18:07/文章来源:https://www.cnblogs.com/hshy/p/19190418

LabVIEW 类型描述符

🧩 一、确认背景

你说的“问题标签是ABCD又变成10”,意思大概是这样:

控件数据类型标签Type Descriptor 长度
Boolean “AB” 8  
Boolean “ABC” 8  
Boolean “ABCD” 10  

即:同样是一个 Boolean 控件
只是标签名(Label)从 2 字符 → 4 字符,Type Descriptor 长度从 8 → 10。


🧠 二、关键点:这时你看到的不是纯类型描述符 (Type Descriptor),而是“Type + Label 组合结构”

LabVIEW 在某些序列化、Flatten 或控件引用结构(尤其是“控件属性列表”或“VI 文件内部结构”)里,会用如下格式保存一个控件:

 
[Type Descriptor][Label Pascal String]

也就是说:

  • 纯 Type Descriptor:固定 8 字节;

  • 但如果后面带 Label(Pascal 字符串):

    • Label 头 = 1字节长度;

    • Label 内容 = N字节;

    • 所以总长度 = 8 + 1 + N。


🧮 三、举个例子

LabelPascal字符串形式Type Descriptor部分(8B)总长度
"AB" 02 41 42 01 00 00 00 00 00 00 00 8 + 3 = 11
"ABC" 03 41 42 43 同上 8 + 4 = 12
"ABCD" 04 41 42 43 44 同上 8 + 5 = 13

不过有时 LabVIEW 会在结构中压缩对齐(比如 2 字节对齐、偶数字节填充 0),
于是你看到的“显示长度”为:

  • 8(小于等于3字节Label)

  • 10(4字节Label,有对齐补位)

也就是说:

当 Label 变成 "ABCD"(长度 4),系统加了 1字节长度前缀,再为了对齐补了 1字节填充,所以整体从 8 → 10。


⚙️ 四、为什么 LabVIEW 要补齐到偶数?

LabVIEW 在类型描述符、控件块中大量使用 16 位对齐 (word alignment)
这是为了:

  • 不同平台(x86/x64/ARM)结构解析更快;

  • Flatten / Unflatten 更容易移植;

  • 避免跨字节访问带来的 CPU Penalty。

所以:

  • Label 长度为奇数 → 不补;

  • Label 长度为偶数 → 再补 1;
    这样总长度始终是奇偶一致,结构整体保持对齐。


🧩 五、总结表格

LabelLabel长度Pascal结构说明最终长度
AB 2 02 41 42 +1前缀,共3字节 8 + 3 = 11 (取对齐8)
ABC 3 03 41 42 43 +1前缀,共4字节 8 + 4 = 12 (取对齐8)
ABCD 4 04 41 42 43 44 +1前缀,共5字节,对齐补1 8 + 6 = 14(显示10)

不同版本的 LabVIEW、Flatten 方法、结构保存方式略有差异——有的计算Type Descriptor本体长度,有的计算整个块长度


✅ 六、结论

现象原因
标签从 AB/ABC → ABCD 后,Type Descriptor 长度从 8 → 10 因为此时 LabVIEW 的类型块里附带了 标签的 Pascal 字符串 + 对齐字节
类型是否变了 ❌ 没有变,仍是 Boolean
为什么有补齐 LabVIEW 内部用 16 位对齐保证跨平台结构一致性
怎么验证 用 VI Scripting 读 TypeDesc 本体 vs 控件信息结构对比即可看出差异

💡 一句话总结:

标签变长后,LabVIEW 会在类型描述结构后面附带 Pascal字符串存储标签名,并补齐到偶数字节边界,所以“ABCD”时长度从 8 变成 10,看起来变长,但数据类型本身没有变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/955735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序平台分账功能从开始到落地的完整解析

转载链接:https://m.jixing.net/chouqian/ 在数字化商业生态中,小程序平台分账功能已成为连接多方利益、优化资金流转的核心基础设施。其价值不仅体现在效率提升上,更在于构建透明、合规的商业合作关系。本文将从技…

Hutool(Excel工具使用)

太懒了,先收藏下 https://blog.csdn.net/qq_43230007/article/details/107216171

2025年融资顾问服务内容权威排行榜,上市融资顾问哪个好

2025年国内中小微企业融资环境持续优化,但融资难、融资贵的结构性问题仍未完全破解:企业普遍面临融资渠道单一、资金方资源匮乏、不了解资金方风险偏好、对信贷准入政策一知半解等痛点;部分企业财务数据不符合审调需…

2025年靠谱的安防监控厂家推荐:五大安防监控大型厂家解析

在数字化转型加速推进的当下,安防监控系统已从传统的被动防御工具升级为主动感知、智能决策的空间管理中枢,是智慧社区、智慧办公、智慧工厂等场景的核心基础设施。面对市场上良莠不齐的供应商,如何选择靠谱的安防监…

2025年列管换热器批发厂家权威推荐榜单:不锈钢列管换热器/冷凝器/列管式冷凝器源头厂家精选

在化工工艺能效要求持续提升的今天,一台高性能的列管换热器已成为优化生产能耗与工艺温度控制的关键装备。 列管换热器作为化工、石油、制药等流程工业中实现热量交换的核心设备,其传热效率与运行稳定性直接影响生产…

VitualDisk 驱动

VitualDisk 驱动驱动代码 #include <linux/types.h> #include <linux/kernel.h> #include <linux/delay.h> #include <linux/ide.h> #include <linux/init.h> #include <linux/modul…

2025年智能家居品牌新推荐排行榜白皮书,稳定的智能家居品牌有什么

2025年智能家居行业进入体验为王的深度竞争阶段,用户对设备的稳定感需求愈发凸显——既要求日常使用中零卡顿、少故障的基础体验,也期待售后响应及时、长期耐用的品质保障。然而当前市场中,部分品牌存在三大核心痛点…

CSPJ2024游记-小LYF的OI之路(1)

去年的懒得写了 省流:初赛92.5 复赛100+100+100+0=300 1=

2025 年 11 月多功能塑料粉碎机,小型粉碎机,塑料瓶粉碎机厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读!

引言 在塑料加工与回收产业持续发展的背景下,多功能塑料粉碎机、小型粉碎机、塑料瓶粉碎机作为核心处理设备,其品质直接关系到企业生产效率与资源回收效益。为帮助行业筛选优质设备供应商,本次测评联合行业协会,依…

2025 年 11 月强力塑料粉碎机,工业塑料粉碎机,多功能塑料粉碎机厂家最新推荐,实力品牌深度解析采购无忧之选!

引言 当前塑料加工与回收领域对强力塑料粉碎机、工业塑料粉碎机、多功能塑料粉碎机的需求持续攀升,设备品质直接关系到生产效率与资源利用率。为帮助企业精准筛选优质供应商,行业协会联合专业测评机构开展专项测评,…

二、基于直接策略搜索的强化学习方法详细解释

直接策略搜索(Direct Policy Search)是强化学习的三大核心分支之一,与“基于值函数的方法”最大区别在于:不通过价值函数间接推导策略,而是直接将策略参数化,通过优化参数最大化长期累积奖励。其核心逻辑是“定义…

2025年智能天窗十大品牌推荐,前景智能天窗操作方便吗

在建筑智能化浪潮下,智能天窗已成为提升空间舒适度与节能效率的关键产品。面对市场上功能各异的智能天窗品牌,消费者往往困惑于前景智能天窗操作方便吗、前景智能天窗智能控制灵敏吗、前景智能天窗透光性如何等核心问…

DeepCode:把论文和想法变成代码的 AI 工具

DeepCode 是香港大学开源的 AI 编码工具,通过多智能体协作实现论文转代码、需求转网站、描述转后端三大功能。采用 MIT 协议,已获 7900+ 星标。适合科研人员、独立开发者和技术学习者使用,能有效提升开发效率。看论…

2025年哈尔滨家装行业口碑榜:为尚装饰的安全保障如何

在哈尔滨装修市场套路多、水太深的痛点下,业主挑选靠谱家装公司时,往往围绕为尚装饰的安全保障如何、市场口碑如何、性价比怎么样这三大核心疑问展开。2025年,我们结合业主真实评价、工程质量抽检数据与服务履约率,…

从零开始学Flink:事件驱动

本文系统讲解 Apache Flink 的事件驱动编程模型,涵盖 ProcessFunction、定时器与状态、事件时间与 Watermark、与窗口的对比以及最佳实践。在实时计算领域,很多业务逻辑天然适合“事件驱动”模式:当事件到达时触发处…

Combo-box Control - ComboExo example

Combo-box Control - ComboExo exampleCreate a new ComboExo using VS2013MFC Application Wizard design dialog eventComboExo example - visualc The original example was written using VC6.0; now we will rewr…

吴恩达深度学习课程二: 改善深层神经网络 第一周:深度学习的实践(六)梯度现象和梯度检验

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

终端里的 AI 编程助手:OpenCode 使用指南

OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。写代码时遇到过这种情况吗? 想问…

P3209 [HNOI2010] 平面图判定

之前写 \(O(n^2)\) 图省事,结果考试考了单 \(\log\),把自己给坑害了(又不想写代码)。 首先发现这个过程本质上在干什么,钦定一些区间不能相同列车,那么可以 2-SAT,也可以二分图染色,这里选择二分图染色好做些。…

Tita项目管理:中小型企业的最佳选择

在中小企业探寻合适项目管理工具的征程中,Tita项目管理以其独特优势脱颖而出,为企业项目全流程管理难题提供了优质解法。 契合多样需求,精准适配项目类型与规模 中小企业的项目或简单灵活,或复杂多元,Tita皆能应对…