- 主题:同事间因为一个问题差点吵起来了
请问如果你这个结构有40个元素,最后是个变长
malloc的参数你怎么写?
【 在 flw 的大作中提到: 】
: 其实 0、1、2、3、4、maxlen 没有本质区别……
: 反正都是 malloc 之后再 cast 一下,能有啥区别。
:
--
FROM 223.104.40.*
为了说明优点,生造出来栈上使用的场景
本来就是变长的数据,非要用定长的结构去承载
【 在 flw 的大作中提到: 】
: offset 宏就可以了。当然 0 1 效果更佳。
: 早期标准不支持 0,大家实践中用 1 居多。
: 但 maxlen 方便在栈上用,各有各的好处。
: ...................
--
FROM 223.104.40.*
这返回的是数据指针
你要复制出来么
如果不复制出来,你最后用一个指针指过去就行了
你为什么要用一个buf
如果你要复制出来,那你就需要知道长度
【 在 flyren911 的大作中提到: 】
: 可能我说的不清楚,我们接收信号是在图形化的编程语言里面,接收信号的逻辑用C语言表达就是:
: DataTypeT data = *(DataTypeT *)receive(SIG_ID);
: 这个逻辑是没法修改的,第三方的工具。
: ...................
--
FROM 223.104.40.*
说实话,我没明白b在干什么
ph没在等号右侧出现过
这变量干什么用的
【 在 flyren911 的大作中提到: 】
: 我感觉跟同事之间的争议点可以等价于这道面试题:
: 给定这样一个结构体
: typedef struct house
: ...................
--
FROM 118.29.7.*
用maxlen的buf保存变长数据是错误的
不保存实际数据长度也是错误的
这属于根本没理解变长数据结构的用法
然后,定义这个结构要做什么呢
相比原来的结构,没解决任何问题
弄一个新的,引发了同事的争端,图什么呢
别人能用这个结构么,他用他就要自己解析
那他需要看的是原始结构,看这个结构他根本不知道如何解析
也就是这个结构定义,什么用没有
正确不正确又怎么样
【 在 xunery 的大作中提到: 】
: 这样的问题真不该有争论,就是很多人连正确与错误,好与坏都分不清,那就需要一个强势的领导保证代码质量。首先,你的写法正确,你应该有这样的自信,代码的情况并不复杂,多读读高质量代码,通常的处理手法就能掌握了。5年经验以下的程序员特别容易有奇奇怪怪的想法还觉得自己无比正确,不要浪费时间试图说服他们,他们奇怪的想法多得多,浪费时间。你同事的那种写法就是错误的,不是谁更优。不过是用解析的错误弥补定义时的错误,看起来可以运行。
--
FROM 223.104.41.*
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
你定义一个local没解决任何问题
【 在 flyren911 的大作中提到: 】
: 主要是你没明白我们的背景,我们是图形化的编程语言,接收信号用C语言的语法来描述就是用一个静态结构把原始的信号保存下来,而且是内存直接拷贝。所以我们要为每一个信号适配一个对应的图形化的结构体,对于静态信号,直接原封不动的照着抄就行了,一一对应,但是对于这种双层动态的信号就没法一一对应了,只能搞个buffer存起来。
--
FROM 118.29.7.*