全球FlexSim系统仿真中文论坛

搜索
楼主: domcylai
打印 上一主题 下一主题

协同任务序列(CTS)与子任务(SUBTS)一起使用的小例子

[复制链接]
21#
我很强壮 发表于 2017-1-11 14:53:24 | 只看该作者
下载学习一下
22#
lulu-luka 发表于 2017-6-12 01:52:52 | 只看该作者
谢谢分享~
23#
lulu-luka 发表于 2017-6-12 08:28:26 | 只看该作者
本帖最后由 lulu-luka 于 2017-6-12 08:36 编辑

刚刚把这个例子学习完~基本上搞清楚了TASKTYPE_CALLSUBTASKS的任务类型的作用机制。
但是在楼主编写的代码中我看到了一些我没遇见过的编写方式:
1.
  1. int op1travelkey = insertproxytask(myts, operator1key, TASKTYPE_TRAVEL, current, NULL, 0,0,0,0);  
  2.     op1travelkey = insertproxytask(myts, operator1key, TASKTYPE_FRLOAD, item, current, port,0,0,0);
  3.     op1travelkey = insertproxytask(myts, operator1key, TASKTYPE_TRAVEL, midstation, NULL, 0,0,0,0);
  4.     op1travelkey = insertproxytask(myts, operator1key, TASKTYPE_FRUNLOAD, item, midstation, 0,0,0,0);
复制代码
只定义一个op1travelkey,但是却定义了很多个任务,在模型的实际运行中看来这样编写是有效果的,想知道到底能不能这样编写(可能C语言学的不好,不太清楚代码编写的格式问题),求指教。
2.
  1. #define OP1SUBTS 1
  2. #define OP2SUBTS 2
复制代码
看来这是一个定义和应用的语句,但是没有见过这样的用法,想请教这种类型的引用大部分用在什么情况之下,而且为什么 OP1SUBTS后面还要跟着一个1,OP2SUBTS 2后面还跟着一个2,在后面看来好像没有用到,还是说这只是一个定义的格式问题,求指教。
24#
skyuan 发表于 2017-6-12 10:35:35 | 只看该作者
先下载再看,多谢
25#
慧娴亚伦 发表于 2017-6-12 13:37:32 | 只看该作者
23# lulu-luka

1、可以,重复使用同一个变量名,每次都重新赋值,但是个人不推荐这样做,某种程度可能导致代码阅读困难;
2、这是声明一个局部宏,也就是在这个代码编辑域内OP1SUBTS 就代表了1。宏的作用可以简单理解为,将不明意义的数字转为有意义的一串大写字符,方便进行代码编制或者阅读。
26#
eb_sun 发表于 2017-6-12 15:01:40 | 只看该作者
代码的功底很重要,学习了
27#
lulu-luka 发表于 2017-6-14 01:11:08 | 只看该作者
25# 慧娴亚伦

陈老师,那个局部宏的声明是搞懂了,但是第一个那种重新赋值还是有点疑问。
一般重复使用同一个变量名,每次赋新值,该变量的值应该是最后一次赋值的内容。
也就是说我觉得上面那种方式得到的op1travelkey应该就只是最后一个任务TASKTYPE_FRUNLOAD,但是实际上在insertsynctask时,操作员1是执行了op1travelkey变量被赋予的所有值即所有任务。
我不知道这样理解是不是正确的,求指教。
28#
慧娴亚伦 发表于 2017-6-14 02:33:57 | 只看该作者
在代码中声明一个变量只是为了后面引用方便,有没有声明变量,以及变量叫什么名字不影响具体命令是否执行。
29#
zhredstar 发表于 2017-6-21 00:43:37 | 只看该作者
感谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2024-11-1 07:47 , Processed in 0.075211 second(s), 12 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表