阅读:1448回复:8
一行代码的困惑
我是一个初学者,发现驱动程序代码中经常出现类似的语句
SP_DEVIFO_DATA did = {sizeof(SP_DEVINFO_DATA)}; 也就是: 结构类型 变量名 = {sizeof( 结构类型 )}; 我猜测,结构类型的第一个成员存放其自身的大小. 这么做的用意是什么? |
|
沙发#
发布于:2004-06-15 14:07
应该是申请了那么大的内存空间,然后把分配的内存空间的开始地址给了她!!!
|
|
|
板凳#
发布于:2004-06-15 15:42
==
SP_DEVINFO_DATA did; ZeroMemory(&did); did.cbSize = sizeof(SP_DEVINFO_DATA); |
|
地板#
发布于:2004-06-18 08:27
sorge我确切的知道你错了。
arthurtu你没理解我的意图。 你的写法和我的写法一样,但是我是想知道为什么这么做。 知道他的体积有什么意义? |
|
地下室#
发布于:2004-06-18 11:44
能起个简单的版本检查作用
|
|
5楼#
发布于:2004-06-18 21:59
知道空间大小当然有用拉 ~~
|
|
|
6楼#
发布于:2004-08-12 18:21
C语言都还没过关啊!
查一下C语言对struct的赋值语法吧。 SP_DEVIFO_DATA did = {sizeof(SP_DEVINFO_DATA)}; 是对的不过也有点冒险。 推荐arthurtu的写法。 想一下如果cbSize不是第一个成员的话,嘿嘿。。。 |
|
7楼#
发布于:2004-08-12 19:10
不管你水平有多高,请养成良好的编程习惯。
|
|
|
8楼#
发布于:2004-08-13 15:05
OK,赞成!
|
|