L
loverofangel
Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的, c里边定义了一个宏(是不是叫宏啊?)
#define MAX_REC(recname) ((BUFFER_SIZE-sizeof(FRM_HEAD))/sizeof(recname))
其中BUFFER_SIZE=2048,FRM_HEAD是一个定义好的record,定义如下:
FRM_HEAD= record
chRtnCode: Array[0..8] of Char;
chCmd: Array[0..2] of Char;
nCount: Integer;
end
只有那个recname是未定的,是record,这个宏的用法如下,
tagFRM_DEVICE_RES = record
head: FRM_HEAD;
tail: Array[0..((MAX_REC(DEVICE_RES)-1)] of DEVICE_RES;//DEVICE_RES是一个定义好的记录
end {tagFRM_DEVICE_RES};
tagFRM_SUB_RES = record
head: FRM_HEAD;
tail: Array[0..MAX_REC(SUB_RES)-1] of SUB_RES;//SUB_RES是一个定义好的记录
end
我转化成函数后,不知道那个recname参数该怎么做,而且总出现编译错误'(' expected but ')' found
我可以计算出每个记录的size,然后作为常量定义出来,可是有点麻烦,不知道大家有没有什么好的方法,或者指出转化的方法,谢谢!
#define MAX_REC(recname) ((BUFFER_SIZE-sizeof(FRM_HEAD))/sizeof(recname))
其中BUFFER_SIZE=2048,FRM_HEAD是一个定义好的record,定义如下:
FRM_HEAD= record
chRtnCode: Array[0..8] of Char;
chCmd: Array[0..2] of Char;
nCount: Integer;
end
只有那个recname是未定的,是record,这个宏的用法如下,
tagFRM_DEVICE_RES = record
head: FRM_HEAD;
tail: Array[0..((MAX_REC(DEVICE_RES)-1)] of DEVICE_RES;//DEVICE_RES是一个定义好的记录
end {tagFRM_DEVICE_RES};
tagFRM_SUB_RES = record
head: FRM_HEAD;
tail: Array[0..MAX_REC(SUB_RES)-1] of SUB_RES;//SUB_RES是一个定义好的记录
end
我转化成函数后,不知道那个recname参数该怎么做,而且总出现编译错误'(' expected but ')' found
我可以计算出每个记录的size,然后作为常量定义出来,可是有点麻烦,不知道大家有没有什么好的方法,或者指出转化的方法,谢谢!