在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2811|回复: 6

[求助] virtual function void display(input string prefix=“”)后面是什么意思

[复制链接]
发表于 2018-1-10 21:14:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
virtual function void display(input string prefix=“”)这中间的prefix=“”这样写是表示什么意思,为什么要这样写,有没有知道的朋友告诉我一下,最近看到这里不太懂
发表于 2018-1-11 10:38:18 | 显示全部楼层
这就是函数的形参带初值的写法啊,初始值是一个空的字符串
 楼主| 发表于 2018-1-11 14:39:46 | 显示全部楼层
本帖最后由 851018986 于 2018-1-11 15:22 编辑

回复 2# idealm

   virtual function void display(input string prefix=“”)        $display("%sTr:src=%h,dst=%h,crc=%h",prefix,src,dst,crc);
  endfunction
初始值是一个空的字符串这个怎么理解,下面打印那么多参数,为什么input string prefix=“”只写一个prefix,为什么不写成(input string prefix)或者直接什么都不写
还有这个functioon BaseTr Transaction::copy(input BaseTr to = null);
                  Transaction cp;
                  if(to=null) cp=new();
                 else $cast(cp,to);
                 return cp;
                 endfunction
开头这么写(input BaseTr to = null);是表示什么
发表于 2018-1-11 19:27:14 | 显示全部楼层
这就是一个方便使用的好的写法,你定义的函数是要被调用的。有些场景调用打印时,希望在前面带上模块名或者函数名等等前缀,那么就可以把这些内容传给形参,这是设置形参的原因;但是有些场景调用打印时,又不希望带上任何前缀,如果没有默认值,你调用函数的时候还必须传一个空字符进去,会让人觉得使用不方便。所以最好的写法就是你标题中的写法。
 楼主| 发表于 2018-1-11 19:42:29 | 显示全部楼层
回复 4# idealm


   谢谢你,那这个的to=null之后去函数里面为什么还要进行判断,都等于null了functioon BaseTr Transaction::copy(input BaseTr to = null);
                  Transaction cp;
                  if(to=null) cp=new();
                 else $cast(cp,to);
                 return cp;
                 endfunction
开头这么写(input BaseTr to = null);是表示什么
发表于 2018-1-11 19:51:49 | 显示全部楼层
回复 5# 851018986


   这是你的函数定义,你调用的时候传进去的可能不是null啊
 楼主| 发表于 2018-1-11 20:21:15 | 显示全部楼层
回复 6# idealm


   真是太感谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-22 06:53 , Processed in 0.017252 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表