OPNET中FIN,FOUT以及FRET的作用

为了使一个用户定义的函数被执行,该函数必须与一个特殊的堆栈跟踪代码相连。堆栈跟踪技术靠在函数的入口点和出口点插入预处理器宏指令完成(一个函数只有一个入口点,但可以有多个出口点(由C语言的return声明决定)),这些宏指令为:FIN、FOUT和FRET。

FIN被插入到的入口点;FOUT被插入到函数的出口点,但却不返回任何值;FRET被插入到函数的出口点,返回一个值。

注意这些宏指令不需要以分号结束(它们自我包含),但OPNET提供的例程中均以分号结束。FIN的参数中也不需要双引号。OPNET提供的所有的示例模型都包含了这些宏指令,并且建议用户定义的函数也包含这些宏指令。如果FIN、FOUT、和FRET被正确插入了用户代码中,我们就可以使用op_vuerr来找出程序错误的位置,哪怕是在一个嵌套的模型函数调用中。

因此Function Block函数块格式如下:

1
2
3
FIN ( send_pkt ( ) )
your code
FOUT

如果上述格式的代码中只有FIN而没有FOUT,那么OPNET会有如下的出错信息:

1
2
<<< Program Abort >>>
Standard function stack imbalance

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.如何设置全局变量?                            在 .h文件里定义变量,然后在process的HEAD BLOCK 里include这个头文件,就可以使用全局变量了。   2.OPNET如何更方便的看程序? 1.opnet的设置:   preferences->editor_prog        2.source insight的设置  :operation->preferences->symbol Lookups->Project symbol path->Add Project to   Path  (添加自己创建一个包含所有opnet model 和 include目录的project)  当然,这个有些不足,就是那个sv,tv,hb等定义的内容,不能进行关联。     3.OPNET的函数FINFRET以及FOUT都是什么功能?    为了使一个用户定义的函数被执行,该函数必须与一个特殊的堆栈跟踪代码相连。堆栈跟踪技术靠在函数的入口点和出口点插入预处理器宏指令完成(一个函数只有一个入口点,但可以有多个出口点(由C语言的return声明决定))。这些宏指令为:FINFOUTFRETFIN被插入到函数的入口点,FOUT被插入到函数的出口点,但却不返回任何值,FRET被插入到函数的出口点,返回一个值。注意这些宏指令不需要以分号结束(它们自我包含),FIN的参数也不需要双引号。    Opnet提供的所有的示例模型都包含了这些宏指令,并且建议用户定义的函数也包含这些宏指令。如果FINFOUT、和FRET被正确插入了用户代码,我们就可以使用op_vuerr来找出程序错误的位置,哪怕是在一个嵌套的模型函数调用。  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值