You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VOID、PVOID、LPVOID的区别及LP、P前缀含义解析

Windows API中VOID、PVOID、LPVOID的区别及前缀含义

前缀含义

  • P:是英文Pointer的缩写,直接表示「指针」
  • LP:是英文Long Pointer的缩写,这是16位Windows时代的遗留命名——当时系统区分近指针(Near Pointer,只能访问段内内存)和远指针(Long Pointer,可访问跨段内存)。但在32位/64位Windows系统中,内存模型已经统一,LP和P指代的指针没有任何区别
  • 无前缀:代表基础数据类型本身

具体类型解析

  • VOID:对应标准C语言中的void,用于声明无返回值的函数,或是作为通用类型的占位符,本身不能用来定义变量(因为无类型)
  • PVOID:等价于void*,是指向无类型的通用指针,可以安全转换为其他任何指针类型(无需强制转换,符合C语言标准)
  • LPVOID:在16位系统中是远指针,但在现代32/64位Windows环境下,完全等价于PVOID(也就是void*),只是历史遗留的命名方式

实际使用说明

在当前的Windows开发中,PVOID和LPVOID功能完全一致,可以互换使用。老版本的Windows API函数中更常见LPVOID,而新的API或代码规范里可能更倾向于使用PVOID,但两者没有本质差异。

内容的提问来源于stack exchange,提问作者P4WN3R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 12:17:01