マクロ¶
以下に、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)
通常形マクロ¶
通常形のマクロは、他のセルの属性、変数を参照するために使用することが意図されています。
属性アクセスマクロ¶
【マクロ定義例】
#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)