新手C指针问题

kaisc333 2013-01-04 07:36:20
#define NULL (void*)0

正常情况下 我给指针p赋值 只要S_BUTTON* p = NULL 就可以了 可是为什么我看公司代码如下这么写?
S_BUTTON* p = (S_BUTTON*)NULL;
...全文
476 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-01-31
  • 打赏
  • 举报
回复
引用 24 楼 wode201301 的回复:
引用 10 楼 zhao4zhong1 的回复:引用 2 楼 nadleeh123 的回复: 引用 楼主 kaisc333 的回复:#define NULL (void*)0 正常情况下 我给指针p赋值 只要S_BUTTON* p = NULL 就可以了 可是为什么我看公司代码如下这么写? S_BUTTON* p = (S_BUTTON*)NULL; 引……
谁让本人当年初中英语少上一学期课呢! “阿Q精神”有时还是要有的。 参考本人博客文章《参禅与悟道——浅谈人生》
雪碧透心凉_ 2013-01-31
  • 打赏
  • 举报
回复
引用 5 楼 forgetmenot874 的回复:
我们老师说c语言指针已经很少用到了。。。。。
你体育老师说的?
bobbie24 2013-01-31
  • 打赏
  • 举报
回复
S_BUTTON* p = (S_BUTTON*)NULL; 是一个强制类型转换,使得等号左右两边的类型相等。
MFCANDPAI 2013-01-25
  • 打赏
  • 举报
回复
比如像vc6.0这种编译器,就显得很严谨
I'm Daniel Du 2013-01-25
  • 打赏
  • 举报
回复
引用 27 楼 yu275184637 的回复:
引用 5 楼 forgetmenot874 的回复: 我们老师说c语言指针已经很少用到了。。。。。 看来你老师只是一个普通的老师,没有真正接触it行业,c在it中的地位是无可替代的,c中的指针更是无可替代的
引用 17 楼 feifei1062 的回复:
引用 16 楼 WizardOz 的回复: 引用 5 楼 forgetmenot874 的回复:我们老师说c语言指针已经很少用到了。。。。。 你确定你的老师说的是“C语言指针已经很少用到了。。。。。”而不是“C语言已经很少用到了。。。。。”? 要做优化指针是避免不了的,至少现在做游戏大部分还是需要C++
正如楼上提到的,对程序进行优化时必须用到指针的诡秘部分。
yu275184637 2013-01-25
  • 打赏
  • 举报
回复
引用 5 楼 forgetmenot874 的回复:
我们老师说c语言指针已经很少用到了。。。。。
看来你老师只是一个普通的老师,没有真正接触it行业,c在it中的地位是无可替代的,c中的指针更是无可替代的
aljadyan 2013-01-24
  • 打赏
  • 举报
回复
消除编译时的警告!
china_ssl 2013-01-24
  • 打赏
  • 举报
回复
引用 3 楼 virtualxmars 的回复:
有些代码不一定是必须的,可能有着作者才明白的意图,对上面的代码,有几种可能性: 1.在一些编译器中,从void*转换到具体类型的指针(如S_BUTTON*)会导致编译错误。如VS2012,其它的没试验过。 2.在一些编译器中,从void*转换到具体类型的指针会导致编译警告,进行强制转换可避免出现警告 3.即使没有上述问题,进行强制转换也可以明确地告诉读代码的人,这里……
++1
wode201301 2013-01-23
  • 打赏
  • 举报
回复
引用 10 楼 zhao4zhong1 的回复:
引用 2 楼 nadleeh123 的回复: 引用 楼主 kaisc333 的回复:#define NULL (void*)0 正常情况下 我给指针p赋值 只要S_BUTTON* p = NULL 就可以了 可是为什么我看公司代码如下这么写? S_BUTTON* p = (S_BUTTON*)NULL; 引用一句话:make the compiler happy! Make t……
"Why don't make myself happy!" 你这句错了吧? 改为Why not make myself happy!是不是会好些?
xxb249 2013-01-23
  • 打赏
  • 举报
回复
编程习惯问题!!没有什么的
forgetmenot874 2013-01-23
  • 打赏
  • 举报
回复
引用 17 楼 feifei1062 的回复:
引用 16 楼 WizardOz 的回复:引用 5 楼 forgetmenot874 的回复:我们老师说c语言指针已经很少用到了。。。。。 你确定你的老师说的是“C语言指针已经很少用到了。。。。。”而不是“C语言已经很少用到了。。。。。”? 要做优化指针是避免不了的,至少现在做游戏大部分还是需要C++
c语言好像是不多用了吧。。。不过我们现在要学这个。。。老师说学这个再学其它语言比较好。。。
常如意 2013-01-16
  • 打赏
  • 举报
回复
有些代码不一定是必须的,可能有着作者才明白的意图,对上面的代码,有几种可能性: 1.在一些编译器中,从void*转换到具体类型的指针(如S_BUTTON*)会导致编译错误。如VS2012,其它的没试验过。 2.在一些编译器中,从void*转换到具体类型的指针会导致编译警告,进行强制转换可避免出现警告 3.即使没有上述问题,进行强制转换也可以明确地告诉读代码的人,这里需要的是一个S_BUTTON类型的指针,提高了代码的可读性。 这是大神啊
FridayRU 2013-01-13
  • 打赏
  • 举报
回复
方便跨平台吧
lion7beck 2013-01-12
  • 打赏
  • 举报
回复
不同的编译器的要求是不一样的。再说楼主需要明确下你公司代码中的“NULL”是如何定义的。
金色羽翼 2013-01-12
  • 打赏
  • 举报
回复
引用 16 楼 WizardOz 的回复:
引用 5 楼 forgetmenot874 的回复:我们老师说c语言指针已经很少用到了。。。。。 你确定你的老师说的是“C语言指针已经很少用到了。。。。。”而不是“C语言已经很少用到了。。。。。”?
要做优化指针是避免不了的,至少现在做游戏大部分还是需要C++
nadleeh 2013-01-05
  • 打赏
  • 举报
回复
引用 10 楼 zhao4zhong1 的回复:
Make the manager happy! Make the boss happy! Make the client happy! Why don't make myself happy!
If they are not happy, you dare to be happy?
张子DQ 2013-01-05
  • 打赏
  • 举报
回复
公司规定。。。。
zhcosin 2013-01-05
  • 打赏
  • 举报
回复
只是为了增加代码可读性以及消除编译器可能产生的警告。
麦壳饼 2013-01-05
  • 打赏
  • 举报
回复
make the compiler happy!
jimette 2013-01-05
  • 打赏
  • 举报
回复
加载更多回复(11)

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧