指针上的按位 *** 作?
有没有办法达到同样的效果?
同样适用于C?
解决方法 你不能做按位指针 *** 作的原因是因为标准说你不能.我认为标准说的原因是因为按位指针 *** 作几乎普遍导致未定义或(最多))实现定义的行为.所以没有什么可以做,这是有用和便携式,不像简单的 *** 作,如加法.但是你可以用铸造来摆脱它:
#include <stdint.h>voID *ptr1;// Find page startvoID *ptr2 = (voID *) ((uintptr_t) ptr1 & ~(uintptr_t) 0xfff)
对于C,只需使用reinterpret_cast而不是C风格的转换.
总结以上是内存溢出为你收集整理的c – 为什么你不能对C中的指针进行按位 *** 作,有没有办法呢?全部内容,希望文章能够帮你解决c – 为什么你不能对C中的指针进行按位 *** 作,有没有办法呢?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)