- 主题:同事间因为一个问题差点吵起来了
- 预先限定了是内存传递,这不是好的设计数据结构的习惯
 
 传输部分和解析部分应该解耦合
 他是网络传过来的还是共享内存的
 只需要给个指针和长度
 解析部分应该是一样的逻辑
 
 【 在 flyren911 的大作中提到: 】
 : 接收信号的实现我们不管,是操作系统的功能。嵌入式系统,发送和接收就是同一块内存的所有者的变更,所以一般情况下是不会有保存在本地的需求的。接收到信号后进行处理,处理完后释放。
 : 你没有len
 : 那你的传输部分和解析部分就是绑死的
 : ...................
 --
 FROM 118.199.90.*
 
- 本地通行又不浪费带宽,这种内存消耗又微乎其微,把所有结构体定义清楚,最后一个union来解析不是清楚的很吗
 【 在 flyren911 的大作中提到: 】
 : 今天同事因为这个事差点吵起来了,事情是这样的:
 : 两个process之间通过信号通信,A发了一个动态信号给B,B需要用一个静态数据结构保存下来在本地处理。信号数据结构简化了一下,看起来像这样,portCap的长度是动态的,band的长度也是动态的。
 : typedef struct bandType
 : ...................
 --
 FROM 112.64.184.*
 
- 论程序员的修炼
 写能让人看懂的代码,是最高境界
 【 在 flyren911 的大作中提到: 】
 : 今天同事因为这个事差点吵起来了,事情是这样的:
 : 两个process之间通过信号通信,A发了一个动态信号给B,B需要用一个静态数据结构保存下来在本地处理。信号数据结构简化了一下,看起来像这样,portCap的长度是动态的,band的长度也是动态的。
 : typedef struct bandType
 : ...................
 --来自微水木3.5.11
 --
 FROM 114.242.250.*
 
- 就事论事,楼主他们已经走这条路了,那么接下来哪两条岔路更好而已,你们非要说你就不该走到这里来,那有什么意义
 【 在 slowaction 的大作中提到: 】
 : 你每次都申请最大的,你搞这种变长数据结构干什么呢
 : 白白增加了理解成本
 --
 FROM 112.17.236.*
 
- 这份数据不是从自己这部分产生的
 别人穿递过来的时候一定是有长度的
 
 你申请内存的时候要根据数据长度来申请
 而不是根据理论长度
 
 
 
 【 在 webhost 的大作中提到: 】
 : 就事论事,楼主他们已经走这条路了,那么接下来哪两条岔路更好而已,你们非要说你就不该走到这里来,那有什么意义
 --
 FROM 118.199.90.*
 
- 看了一下感觉都可以吧。
 只要解析数据正确就行了呗。
 
 【 在 flyren911 的大作中提到: 】
 : 今天同事因为这个事差点吵起来了,事情是这样的:
 : 两个process之间通过信号通信,A发了一个动态信号给B,B需要用一个静态数据结构保存下来在本地处理。信号数据结构简化了一下,看起来像这样,portCap的长度是动态的,band的长度也是动态的。
 : typedef struct bandType
 : ...................
 --
 FROM 27.154.193.*
 
- 1就是表明是动态的,可能是为了兼容老的编译器?正常情况下应该写成0的。
 【 在 bihai 的大作中提到: 】
 : 看不懂。这个portCap长度是动态的是什么意思?你不是写了一个一在里面吗?
 :
 : #发自zSMTH@HD1925
 --
 FROM 193.15.240.*
 
- 就是解析数据可能会出错啊,
 接收信号的逻辑是这样的,这个不能更改,receive返回的就是发送方分配的那块内存:
 local_radioCapT local_radioCap = *(local_radioCapT *)receive(SIG_ID);
 
 你解析数据的时候正常反应是不是就是这样引用了local_radioCap.portCap[i].bandNum ?
 
 【 在 gluon521 的大作中提到: 】
 : 看了一下感觉都可以吧。
 : 只要解析数据正确就行了呗。
 :
 --
 修改:flyren911 FROM 193.15.240.*
 FROM 193.15.240.*
 
- 恰恰就是没有长度的,长度得自己一项一项加起来计算出来,这个是客户协议定义的问题,没法解决。
 【 在 slowaction 的大作中提到: 】
 : 这份数据不是从自己这部分产生的
 : 别人穿递过来的时候一定是有长度的
 : 你申请内存的时候要根据数据长度来申请
 : ...................
 --
 FROM 193.15.240.*
 
- 按照你定义的数据结构,
 别人也没法直接处理数据
 
 或者你给函数遍历或者他写回调
 
 你这数据结构,传输/解析/处理必须要一起完成
 本来这是独立的三件事
 
 
 【 在 flyren911 的大作中提到: 】
 : 就是解析数据可能会出错啊,
 : 接收信号的逻辑是这样的,这个不能更改,receive返回的就是发送方分配的那块内存:
 : local_radioCapT local_radioCap = *(local_radioCapT *)receive(SIG_ID);
 : ...................
 --
 FROM 223.104.40.*