マクロ

以下に、TECS ジェネレータが生成し、セルタイプコードで使用可能なマクロの一覧を記します。 セルタイプコードを記述する場合、短縮形を用います。

マクロ 短縮形 通常形
IDXの正当性チェック VALID_IDX tCelltype_VALID_IDX
セルCBを得るマクロ GET_CELLCB tCelltype_GET_CELLCB
属性アクセスマクロ ATTR_attribute tCelltype_ATTR_attribute
内部変数アクセスマクロ VAR_variable tCelltype_VAR_variable
呼び口関数マクロ cCall_func  
受け口関数マクロ eEntry_func tCelltype_eEntry_func
呼び口関数マクロ cCall_func  
呼び口配列サイズマクロ NCP_cCall N_CP_cCall
FOREACH_CELLマクロ FOREACH_CELL  

この表では、一例を示しています。 以下のような置き換えが必要です。

  • attribute は属性名に置き換える
  • variable は内部変数名に置き換える
  • func は関数名に置き換える
  • cCall は呼び口名に置き換える
  • eEntry は受け口名に置き換える
  • tCelltype はセルタイプ名に置き換える

短縮形マクロ

短縮形マクロは、通常形に優先して使用されることが意図されています。 また、テンプレートコードは、短縮形の使用を意図して生成されています。 属性・変数参照マクロでは CELLCB へのポインタが p_cellcb という名前で定義されることが仮定されています。

セルCBを得るマクロ(短縮形)

セル CB を得るマクロは、GET_CELLCB です。

【マクロ定義例】

#define GET_CELLCB(idx)  tAttribute_GET_CELLCB(idx)

IDXの正当性チェックマクロ(短縮形)

IDXの正当性チェックマクロは VALID_IDX です。

【マクロ定義例】

#define VALID_IDX(IDX)  tAttribute_VALID_IDX(IDX)

属性アクセスマクロ(短縮形)

属性アクセスマクロは、接頭辞 ‘ATTR_’ に属性名を結合した名前です。

【マクロ定義例】

#define ATTR_size              ((p_cellcb)->_inib->size)
#define ATTR_size_array        ((p_cellcb)->_inib->size_array)
#define ATTR_ptr               ((p_cellcb)->_inib->ptr)

内部変数アクセスマクロ(短縮形)

内部変数アクセスマクロは、接頭辞 ‘VAR_’ に属性名を結合した名前です。

【マクロ定義例】

#define VAR_sz_array           ((p_cellcb)->sz_array)

呼び口配列の大きさを得るマクロ(短縮形)

呼び口配列の大きさを得るマクロは、接頭辞 ‘NCP_’ に呼び口名を結合した名前です。 呼び口が配列の場合のみ、このマクロが生成されます。

【マクロ定義例】

#define NCP_carray    (2)

【訂正】(2016/11/12) 本マニュアルの最初の公開時(以前のTECS 仕様書においても)、呼び口配列の大きさを得るマクロについて、(NCP_cCall ではなく) N_CP_cCall としていましたが、これは引数を取る場合と、取らない場合がありました。シングルトン、または配列添数が定数の場合に引数を取りませんでした。なお、TECS ジェネレータの生成するテンプレートのコメントは、以前から NCP_cCall の形式となっていました。

オプショナル呼び口テストマクロ(短縮形)

呼び口配列の場合、このマクロで結合をチェックする前に、呼び口配列の大きさが1以上であることを確認してください。

【マクロ定義例】

#define is_cCall_joined      ((p_cellcb)->_inib->cCall!=0)

通常形マクロ

通常形のマクロは、他のセルの属性、変数を参照するために使用することが意図されています。

IDXの正当性チェックマクロ

【マクロ定義例】

#define tAttribute_VALID_IDX(IDX) (1)

セルCBを得るマクロ

【マクロ定義例】

#define tAttribute_GET_CELLCB(idx) (idx)

属性アクセスマクロ

【マクロ定義例】

#define tAttribute_ATTR_size( p_that ) ((p_that)->_inib->size)
#define tAttribute_ATTR_size_array( p_that )   ((p_that)->_inib->size_array)
#define tAttribute_ATTR_ptr( p_that )  ((p_that)->_inib->ptr)

#define tAttribute_GET_size(p_that)    ((p_that)->_inib->size)
#define tAttribute_GET_size_array(p_that)      ((p_that)->_inib->size_array)
#define tAttribute_GET_ptr(p_that)     ((p_that)->_inib->ptr)

変数アクセスマクロ

【マクロ定義例】

#define tAttribute_VAR_sz_array        ((p_cellcb)->sz_array)

#define tAttribute_GET_sz_array(p_that)        ((p_that)->sz_array)
#define tAttribute_SET_sz_array(p_that,val)    ((p_that)->sz_array=(val))

オプショナル呼び口テストマクロ

呼び口配列の場合、このマクロで結合をチェックする前に、呼び口配列の大きさが1以上であることを確認すること。

【マクロ定義例】

#define tCelltype_is_cCall_joined(p_that)      ((p_that)->_inib->cCall!=0)