回复:问一问自己做子程序自动分配背景数据的人。

不欲勿施

  • 帖子

    835
  • 精华

    16
  • 被关注

    385

论坛等级:奇侠

注册时间:2009-03-27

钻石 钻石 如何晋级?

发布于 2025-09-02 18:48:46

55楼

展开查看
以下是引用holdkcsxyz在2025-08-25 12:02:18的发言 >9楼

1如果没用到向导或者库且子程序只有一个接口指针

 

A任意一个子程序里只有一个接口一级指针;则很容易找出子程序自身的干涉区:m==公共栈字节数+n个私有区*每个私有区栈字节数;子程序接口指针是&VBxx则这个子程序占用区是: VBxx到VBxx+m.

 

B子程序里除了自身的接口一级指针外,还有二级指针则如下图,变量表里的"#从数据址"是一个二级指针;此时m==公共栈字节数26个字节+n私有从站数12个*每个从站占用的栈字节23字节+{2*(N1读从寄存数+N2读从寄存数...+Ni读从寄存数)+4*(N1写从寄存数1+N2写从寄存数...+Ni写从寄存数)}大括号内是二级指针涉及的堆字节数;此时子程序接口指针是&VBxx则这个子程序占用区是: VBxx到VBxx+m.

 


2如果有向导或者库还要计算向导以及库的内存占用区


3对于强类型语言,如果向导和库也是A或者B那样的类似函数指针接口式的构成,则所有的占用区都可以方便的计算出来,动态数组集合等预留的存储区也可以编译时就算出预留的方便动态扩展的占用字节数.


你这还没能将modbus rtu的那些功能封装到一个子程序里啊,我的程序都被许多工友验证使用通过了,反馈非常好。

13478405725
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8936条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。