首先这里的far,在32位系统已经废除不用了。它是C/C++语言在16位系统中用以标明指针是个远指针的修饰符。

远指针是说指针所指向的地址已经超出了64K(2的十六次方),所以需要使用DS加偏移量的方法来寻址,而不能直接寻址。其反义的修饰符是near。

举例:

int far *fptr;      
      fptr=(int far*)0xb0000000;

16位PC机的存储器地址是由段地址和偏移地址组合而成,每一段不能超过64k字节地址,因而同一个段内的地址存取,用偏移地址就可以实现,因段地址寄存器所存的段地址是不变的。当用指针时,只16位就够了,这一类就是near指针。当要在另一个段内取数据,就要跨越段,即要指明存取段的段地址和偏移地址,这时段地址寄存器所存段地址要改变,在使用指针指向另一个段内地址时,就要用32位表示,就是far指针了。由此可见,如果你想写在Win16上也能运行的程序,才会涉及到newr、far指针的概念。在Win32上,指针已无near、far的区分。

LPVOID 在MSDN上的定义:A 32-bit pointer to an unspecified type.  32位上未指明的类型。

例子:

HANDLE ThreadHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, this, 0, NULL); //线程回调函数this这里可以传任何变量。
DWORD WINAPI MyClass::ThreadProc(LPVOID Param)
{
//这时候传进来什么类型,Param就是什么类型。
return 0;
}

转载于:https://www.cnblogs.com/littlepear/p/5933649.html

typedef void far *LPVOID 的具体定义相关推荐

  1. 对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)

    typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 此处由于加了type ...

  2. typedef void(*Fun)(void);

    今天在SDK中看到了这么个写法: typedef void(CALLBACK *DisplayCBFun)(long nPort,char *pBuf,long nSize,long nWidth,l ...

  3. 如何理解typedef void

    首先介绍大家比较熟悉的typedef int i;//定义一个整型变量i typedef myInt int: myInt j;//定义一个整型变量j 上面介绍得是我们常用的比较简单的typedef的 ...

  4. VS2010运行DirectShow的错误—typedef void * POINTER_64 PVOID64

    根据于老师给的link, http://wiki.opencv.org.cn/index.php/%E4%BD%BF%E7%94%A8DirectShow%E9%87%87%E9%9B%86%E5%9 ...

  5. C语言中typedef void(*F)(类型)解读

    一.typedef void(*T)(void *) 层层剖析 1. void(*T)() T是一个指向返回值为void ,参数为空的类型的函数指针 2. void(*T)(void *) T是一个指 ...

  6. 对函数指针与typedef的理解:typedef void (*sighandler_t)(int)

    文章目录 缘由 解释函数指针int (\*f)(int*); 解释typedef void(*sighandler_t)(int) 缘由 2021年9月22日在刷CS:APP的时候,邂逅了一种函数指针 ...

  7. C语言typedef和Windows数据类型

    typedef 的作用是给已知的数据类型命名别名,起到下列作用: 1 复杂的数据类型名称简化 2 用typedef 定义与平台无关的数据类型 3 增强代码可读性 4 避免错误 一个使用typedef的 ...

  8. Swift中使用typealias定义一个闭包closure

    在OC中我们定义一个Blocks是这样定义的: typedef void (^ZWProgressHUDCompletionBlock)(); 在Swift中定义一个闭包是这种: typealias ...

  9. [C++ rudiment][转]typedef 使用

    typedef似乎很简单,如typedef int integer:然而,这些简单的typedef语句容易让人产生一种误解,typedef就是一种宏替换,把后面的自定义类型替换成前面的已知类型,事实是 ...

  10. 函数指针作为某个函数的参数及定义函数指针

    转载于:http://blog.csdn.net/vlily/article/details/7244682 一. 定义某一函数的指针类型: 就像自定义数据类型一样,我们也可以先定义一个函数指针类型, ...

最新文章

  1. 【转】python 字符编码与解码——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't decode...
  2. 轻松解决Python “字符编码”,玩儿爬虫的朋友最爱这个库!
  3. Spring Boot系列二 Spring @Async异步线程池用法总结
  4. Oracle传输表空间介绍
  5. 机器学习任务的一般步骤
  6. Windows Server 2008 R2无法远程桌面解决方法
  7. 搜集访问网页历史记录软件_微软宣布OneDrive版本历史记录功能抵达Win10和macOS客户端版...
  8. 财务模块的一些基础概念
  9. 操作系统进程调度算法
  10. 自定义C语言头文件书写格式
  11. 【经典递归问题 汉诺塔 求解】
  12. 北大光华女的超强面经! 感动之余,真的受益匪浅。
  13. 做什么样的软件才能赚钱? 学什么样的知识才能赚钱? 肖舸老师
  14. 陈天桥的大脑在孕育什么新传奇(转)
  15. 求两个数中的最大值最小值算法
  16. 『我与飞桨的故事』越波飞桨逐凫鷖
  17. 使用HTML5自制视频控件
  18. connectex: No connection could be made because the target machine actively refused it.
  19. 03环信好友管理 - 获取好友列表
  20. 大咖实录|阿里巴巴集团技术委员会主席王坚2017云栖大会演讲

热门文章

  1. excel如何设置下拉框选项
  2. 爬取TAPTAP游戏应用榜单
  3. Air720H模块MQTT协议的AT指令流程
  4. 需要在计算机安装msxml版本,Office2010安装需要MSXML版本6.10.1129.0的方法
  5. Python实现多个Excel文件合并到一个文件中
  6. 函数分离常数法 oracle,圆锥曲线:椭圆小题解题报告
  7. 一个数根号3怎样用计算机计算,手机计算器怎样打出根号3
  8. React Native的缓存和下载
  9. a12处理器怎么样_苹果新一代iPhone A12仿生处理器怎么样
  10. Ubuntu设置静态IP地址的几种方法