我想将我的应用程序切换到LARGEADDRESSAWARE
。需要注意的问题之一是指针算术,因为指针差异不再可以表示为有符号 32b。
有没有办法在大型 C++ 项目中自动查找指针减法的所有实例?
如果没有,是否有一些“最省力”的手动或半自动方法如何实现这一目标?
PC-Lint可以发现此类问题。
Look at http://gimpel-online.com/MsgRef.html,错误代码 947:
应用于指针的减法运算符
——表达
发现 p - q 形式,其中 p 和 q 都是指针。这是属于
在最大指针可以的情况下特别重要
溢出保存指针差异的类型。例如,
假设最大指针为 3 GB -1,并且
指针差异由 long 表示,其中
最大限度
long 为 2 GB -1。请注意,这两个数量都适合
在 32 位字内。然后减去一个小指针
非常大的指针将在中产生明显的负值
long 代表指针差异。反过来,
用小指针减去非常大的指针可以产生
一个正量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)