不知道是从哪个版本的SDK开始,微软引入了一个新的类型——INT_PTR(其实也就是typedef了一把)。看下面的定义就知道了。

#if defined(_WIN64)

    typedef __int64 INT_PTR, *PINT_PTR;

    typedef unsigned __int64 UINT_PTR, *PUINT_PTR;

    typedef __int64 LONG_PTR, *PLONG_PTR;

    typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;

    #define __int3264   __int64

#else

    typedef _W64 int INT_PTR, *PINT_PTR;

    typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;

    typedef _W64 long LONG_PTR, *PLONG_PTR;

    typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;

    #define __int3264   __int32

#endif

众所周知,在32位操作系统里,一个int是4个字节。64位操作系统上,一个int是8个字节。指针的大小也是同样。所以用INT_PTR代替int理论上可以让代码具有更好的移植性,当然也让代码看起来更专业:)

INT_PTR 更好的移植性相关推荐

  1. FPGA之道(72)提高设计的综合性能(四)提高设计的移植性与保密性

    文章目录 前言 提高设计的移植性 保持良好的代码风格 按照硬件依赖性区分代码 少使用专有IP核 提高设计的保密性 动态配置参数法 采用具有保密性的技术 前言 本文节选自<FPGA之道>. ...

  2. Nature封面:大团队日趋中庸,小团队更容易出颠覆性创新

    全世界只有3.14 % 的人关注了 数据与算法之美 [导读] 现代科学研究团队的规模越来越大,一般认为,大团队往往有着更充足的经费支持和多样化的研究人员,更有利于科学创新.但近日Nature发表封面文 ...

  3. 利用Linux的强大移植性和兼容性将操作系统轻松安装到硬盘

    Linux的强大移植性和兼容性将操作系统轻松安装到硬盘先前在http://dgd2010.blog.51cto.com/1539422/392310写过一篇文章,<创新性试验:我的第一次实现Li ...

  4. Win知识 - 程序是怎样跑起来的——系统调用和高级编程语言的移植性

    操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的.这些函数及调用函数的行为统称为系统调用(system call),也就是应用对操作系统(system)的功能进行调用(call)的意 ...

  5. 操作系统的重要性及系统调用和编程语言的移植性

    目录 一.操作系统的重要性 二.系统调用和编程语言的移植性 一.操作系统的重要性 对于程序员来说,程序员创造的不是硬件,而是各种应用程序,但是如果程序员只做应用不懂硬件层面的知识的话,是无法成为硬核程 ...

  6. STM32贪吃蛇(流畅,高移植性)

    目录 一.一些前言: 二.完整代码 2.2.snake.c 2.3.中断处理 2.4.startup 三.后言 一.一些前言: 自己用2.4寸TFTSPI的屏写了个贪吃蛇,蛇行走画面流畅,不会有一顿一 ...

  7. java的移植性_详细介绍JAVA的可移植性

    软件可移植性指与软件从某一环境转移到另一环境下的难易程度.为获得较高的可移植性,在设计过程中常采用通用的程序设计语言和运行支撑环境.尽量不用与系统的底层相关性强的语言.下面介绍JAVA的可移植性. 1 ...

  8. python特性高移植性_Python特性图文盘点|微胜教育《九大编程语言全解析》系列...

    原标题:Python特性图文盘点|微胜教育<九大编程语言全解析>系列 ​ 又到了每周<九大编程语言全解析>的时候了,小伙伴们五一马上到了,想好去哪浪了吗? 今天我们盘Pytho ...

  9. python特性高移植性_用户选择使用Python的原因有哪些

    如今有众多可选的编程语言,这往往是入门者首先要面对的问题.开发工具的选择有时取决于特定的约束条件或者个人喜好. 过去的16年中对近260个团体组织和4000名学生的Python培训过程,让我见证了人们 ...

最新文章

  1. php sqlite3菜鸟,SQLite Update 语句
  2. Vue.js 技术揭秘学习 (1) new Vue 发生了什么
  3. NAB 2019见闻:CAE视频编码与QoE
  4. win7 VS2013 新建工程 编译lua5.2.0 静态库
  5. 安卓Queue的使用
  6. LeetCode String Compression
  7. Python 模块之 string.py
  8. js中apply和join
  9. 【spring容器启动】之bean的实例化和初始化(文末附:spring循环依赖原理)
  10. 如何提取多层json数据 python_Postgre数据库字段Json内容提取(基于Python)
  11. 如何使用Tipard 3D Converter转换2D视频格式
  12. HTTP协议【详解】——经典面试题
  13. 图形化操作工具DIGITS 6.1的安装与运行
  14. Python爬虫——5-2.使用selenium和phantomjs模拟QQ空间登录
  15. PPT 2010如何添加背景音乐
  16. linux下kegg注释软件,网页工具KOBAS进行KEGG富集分析
  17. socket 10106问题解决日记
  18. 接口测试+自动化接口测试详解入门到精通
  19. 个人博客园样式、背景及细节美化过程
  20. 以前写的一些老的验证脚本

热门文章

  1. 2018前端常见问题整理
  2. POJ3982 序列
  3. p点到(a,b)点两所在直线的垂点坐标及p点是否在(a,b)两点所在直线上
  4. Ubuntu nfs配置
  5. svn的一些相关资料
  6. Linux磁盘配额(一)
  7. 详解蚂蚁金服 SOFAJRaft:生产级高性能 Java 实现
  8. Leaflet获取可视范围内4个顶点
  9. mac 安装swoole
  10. Using breakpad in cocos2d-x 3.2,dump信息收集