- 主题:同事间因为一个问题差点吵起来了
今天同事因为这个事差点吵起来了,事情是这样的:
两个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.*
这两根本就不是一个意思吧。
我觉得你说得对。
【 在 flyren911 (都是浮云) 的大作中提到: 】
: 今天同事因为这个事差点吵起来了,事情是这样的:
: 两个process之间通过信号通信,A发了一个动态信号给B,B需要用一个静态数据结构保存下来在本地处理。信号数据结构简化了一下,看起来像这样,portCap的长度是动态的,band的长度也是动态的。
: typedef struct bandType
: ...................
--
FROM 27.38.197.*
是啊,我觉得是个很简单的问题,结果就一个认同的,让我很失望。
--
FROM 183.221.18.*
你们内部没有更高一个级别的人来拍板?
【 在 flyren911 的大作中提到: 】
: 是啊,我觉得是个很简单的问题,结果就一个认同的,让我很失望。
--
FROM 114.240.244.*
非要选一个,是你的合理
你要处理变长数据,应该放个datalen在结构里
然后是data[1]
否则变长结构的优点都没用上,只是增加了复杂度
【 在 flyren911 的大作中提到: 】
: 今天同事因为这个事差点吵起来了,事情是这样的:
: 两个process之间通过信号通信,A发了一个动态信号给B,B需要用一个静态数据结构保存下来在本地处理。信号数据结构简化了一下,看起来像这样,portCap的长度是动态的,band的长度也是动态的。
: typedef struct bandType
: ...................
--
FROM 118.29.7.*
"结果另一个同事非要写成这样的形式"
其实“非要”就是争论的基本点,要是能做到心平气和的讨论问题,结果也许会好点,可是难啊
【 在 flyren911 的大作中提到: 】
: 今天同事因为这个事差点吵起来了,事情是这样的:
: 两个process之间通过信号通信,A发了一个动态信号给B,B需要用一个静态数据结构保存下来在本地处理。信号数据结构简化了一下,看起来像这样,portCap的长度是动态的,band的长度也是动态的。
: typedef struct bandType
: ...................
--
FROM 123.123.51.*
我可以拍板,但是以为这个是基本的c语言知识,拿出来讨论一下,希望用大多数人的赞同来说服这个反对的同时,没想到我是少数派。
【 在 z16166 的大作中提到: 】
你们内部没有更高一个级别的人来拍板?
- 来自 水木社区APP v3.4.4
--
FROM 117.136.62.*
我这里的本地数据结构要保存原始数据,不会对数据进行重新处理,所以不能加len,因为还要转发给其他process,同一个信号,同一种结构。
【 在 slowaction 的大作中提到: 】
非要选一个,是你的合理
你要处理变长数据,应该放个datalen在结构里
然后是data[1]
否则变长结构的优点都没
- 来自 水木社区APP v3.4.4
--
FROM 117.136.62.*
你没有len
那你的传输部分和解析部分就是绑死的
你必须一边解析一边接受
否则你都不知道一个包什么时候结束
你这必然造成空间的浪费,
变长结构没给你带来好处,只是搞复杂了
【 在 flyren911 的大作中提到: 】
: 我这里的本地数据结构要保存原始数据,不会对数据进行重新处理,所以不能加len,因为还要转发给其他process,同一个信号,同一种结构。
: 非要选一个,是你的合理
: 你要处理变长数据,应该放个datalen在结构里
: ...................
--
FROM 223.104.40.*
看不懂。这个portCap长度是动态的是什么意思?你不是写了一个一在里面吗?
【 在 flyren911 的大作中提到: 】
:
: 今天同事因为这个事差点吵起来了,事情是这样的:
: 两个process之间通过信号通信,A发了一个动态信号给B,B需要用一个静态数据结构保存下来在本地处理。信号数据结构简化了一下,看起来像这样,portCap的长度是动态的,band的长度也是动态的。
: typedef struct bandType
: {
#发自zSMTH@HD1925
--
FROM 172.58.36.*