老虎的菜 发表于 2018-10-16 14:57:50

求教一个用法?

typedef struct
{
        Uint16 a;                // 帧头
        Uint16 b;                //        
}SCI_LOCK,*PSCI_LOCK;
PSCI_LOCK pID;
pID = (PSCI_LOCK)Buff;
这句话就怎么把Buff和pID关联的,不懂 ,有知道的麻烦告诉声

eric2013 发表于 2018-10-17 01:38:47

这个就是简单的强制类型转换吧。

老虎的菜 发表于 2018-10-17 14:35:40

eric2013 发表于 2018-10-17 01:38
这个就是简单的强制类型转换吧。

(Uint16*)pID+1,他在之后的应用有这么一句话,这个+1 代表什么意思 没懂

老虎的菜 发表于 2018-10-17 15:05:43

eric2013 发表于 2018-10-17 01:38
这个就是简单的强制类型转换吧。

(Uint16*)pID+1,Pid指针变量是加了两个字节啊 (还是四个字节啊)

eric2013 发表于 2018-10-18 12:08:03

老虎的菜 发表于 2018-10-17 15:05
(Uint16*)pID+1,Pid指针变量是加了两个字节啊 (还是四个字节啊)

这个地方要特别注意,他每次加1,就是一个sizeof (PSCI_LOCK )的大小。

老虎的菜 发表于 2018-10-19 08:13:57

eric2013 发表于 2018-10-18 12:08
这个地方要特别注意,他每次加1,就是一个sizeof (PSCI_LOCK )的大小。

懂了 非常感谢硬汉

eric2013 发表于 2018-10-20 02:03:16

老虎的菜 发表于 2018-10-19 08:13
懂了 非常感谢硬汉

{:33:}

公仆 发表于 2019-3-18 13:33:42

老虎的菜 发表于 2018-10-19 08:13
懂了 非常感谢硬汉

挖坟了!你真的懂了吗?好奇怪坛主这个错误的回答你是怎么懂的?
事实上你的问题中(Uint16*)pID+1就相当于((Uint16*)pID)+1,这明显是使指针变量跨了2字节;而坛主说是sizeof(PSCI_LOCK)个字节,很明显是错的!

eric2013 发表于 2019-3-18 15:19:54

公仆 发表于 2019-3-18 13:33
挖坟了!你真的懂了吗?好奇怪坛主这个错误的回答你是怎么懂的?
事实上你的问题中(Uint16*)pID+1就相当 ...

{:8:}

的确是这样的。
页: [1]
查看完整版本: 求教一个用法?