今天同事因为这个事差点吵起来了,事情是这样的:
两个process之间通过信号通信,A发了一个动态信号给B,B需要用一个静态数据结构保存下来在本地处理。信号数据结构简化了一下,看起来像这样,portCap的长度是动态的,band的长度也是动态的。
typedef struct bandType
{
int bandwidth;
int power;
} bandTypeT;
typedef struct portCap
{
int bandNum;
bandTypeT band[1];
} portCapT;
typedef struct radioCap
{
int sigNo;
int portNum;
portCapT portCap[1];
} radioCapT;
我觉得本地的静态数据结构最好写成下面的形式,然后按照发送方的协议来解析。
typedef struct local_radioCap
{
int sigNo;
int portNum;
char data[MAX_LEN];
} local_radioCapT;
结果另一个同事非要写成这样的形式:
typedef struct local_radioCap
{
int sigNo;
int portNum;
portCapT portCap[MAX_NUM];
} local_radioCapT;
我觉得写成这样容易误导别人,让不清楚的人直接用portCap[i]来引用第i个portCap,造成错误,大家觉得呢?
--
修改:flyren911 FROM 193.15.240.*
FROM 183.221.18.*