-
赋值等式的左边,强制类型转换没意义 最后那个sizeof (char)画蛇添足
既然是偏移18字节,void *类型指针自加18就好
我想说明的主要是,指针和unsigned int不能随便互相转
在32位系统和16位系统,这样没有问题。
但是64位系统平台下,这样的代码,指针地址的高32bit就丢掉了。
现在我的工作,就是找出代码中这种错误,修改得能在64bit的CPU上面运行
-
这样也不行 m = (void *)m + 18 这样写就行了 m是mbuf *类型,直接转char *,编译器会有一个警告
-
正确应该转成void * m是指针,是个地址 char是8bit,放不下这个地址
-
嗯。redstone说得很好 我可没说系统是32位的,16位的,还是64位的 对于32位系统,指针是32bit没错 但是对于64位系统,mbuf *是64bit,但unsigned int是32位。指针,也就是地址的前半截没了。
-
redstone9910你这更不对了,m是指针,强转成char型,前面24bit弄丢了,打着灯笼也找不回来了
-
My Lady Gaga, 字母电容...
这是打算把小孩子往哪方面教?
老师上课讲到这个地方打算怎么讲呢