谁告诉我VC++的winnt.h中typedef void *HANDLE;语句是什么意思?好像是定义一个无返回值的什么类型的指针?可我见过的指针定义都是*前面必须加一个数据类型的,比如Int.而这里没加,这是什么用法?整

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/29 17:06:02
谁告诉我VC++的winnt.h中typedef void *HANDLE;语句是什么意思?好像是定义一个无返回值的什么类型的指针?可我见过的指针定义都是*前面必须加一个数据类型的,比如Int.而这里没加,这是什么用法?整
xTIO@+ j+QwZR BTP^*'K',ajYhh1v,y@豗R3o-o̰^6[SStz-BŅɹgo^~uP~2zʍYM5?g 2J`y[m K 0[B"Z\ 5!Kiy[r:3g %T *= |wp[2 /~˴K0lsT14HSU2mZ`rz53/]

谁告诉我VC++的winnt.h中typedef void *HANDLE;语句是什么意思?好像是定义一个无返回值的什么类型的指针?可我见过的指针定义都是*前面必须加一个数据类型的,比如Int.而这里没加,这是什么用法?整
谁告诉我VC++的winnt.h中typedef void *HANDLE;语句是什么意思?
好像是定义一个无返回值的什么类型的指针?可我见过的指针定义都是*前面必须加一个数据类型的,比如Int.而这里没加,这是什么用法?整句什么意思最好能具体说下.在线等.
1楼的回答你不无聊挖~

谁告诉我VC++的winnt.h中typedef void *HANDLE;语句是什么意思?好像是定义一个无返回值的什么类型的指针?可我见过的指针定义都是*前面必须加一个数据类型的,比如Int.而这里没加,这是什么用法?整
void类型的指针是可以出现的,它表示可以指向任意类型的数据,但是void类型指针不能直接使用,使用前必须先转换成某种确定的类型.void类型指针可以用在函数的参数或返回值里.
用作参数的时候,我们一般不关心传递进来的地址类型,比如memset这个函数的原型你可以看看,memset就是为了将传递进来的地址开始的n个字节的值全部赋值成某个特定的值,所以没必要知道是什么类型的指针,就用void类型指针代替了
用作返回值的时候,一般是返回一个地址,至于这个地址你要做什么用那是你决定的,最常见的就是malloc了,它返回void类型指针作为分配好的内存区的首地址,至于是什么类型,就需要用户自己来指定了.
你看看memset和malloc函数的原型就清楚了