[SystemVerilog] task/function の初期値を与えた引数の記述は自由

第15回 SystemVerilog読書会 にて知ったのですが、
task/functionの引数に初期値を与える部分はどこでもいいみたいです。


task read(int j = 0, int k, int data = 1 );

例えば、こういう場合は右詰めするものだと思ってました。

つまり、

task read(int k, int j = 0, int data = 1 );

といったぐあいに。

宣言時の場合には、以下のようにするようです。

LRM引用:

read( , 5 );     // is equivalent to read( 0, 5, 1 );
read( 2, 5 );    // is equivalent to read( 2, 5, 1 );
read( , 5, );    // is equivalent to read( 0, 5, 1 );
read( , 5, 7 );  // is equivalent to read( 0, 5, 7 );
read( 1, 5, 2 ); // is equivalent to read( 1, 5, 2 );
read( );         // error; k has no default value
read( 1, , 7 );  // error; k has no default value

たぶん、こんな風には書かずに、必要なものを左側から書いていくかな。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数