博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
reinterpret_cast运算符
阅读量:5739 次
发布时间:2019-06-18

本文共 1058 字,大约阅读时间需要 3 分钟。

reinterpret_cast运算符

Visual Studio 2012
此主题尚未评级 -

 

允许所有指针转换为其他指针类型。 并允许任何整型转换为任何指针类型反之亦然。

reinterpret_cast < type-id > ( expression )

reinterpret_cast 运算符的滥用可以轻松地是不安全的。 除非所需的转换本身低级别,应使用其他转换运算符之一。

reinterpret_cast 运算符可用于对 Unrelated_class*的转换例如 char*int*One_class* 使用,本质上是不安全的。

reinterpret_cast 的结果不能提供任何安全性使用除转换外回其原始类型。 其他用途,时, nonportable。

reinterpret_cast 运算符无法转换 constvolatile__unaligned 属性。 有关如何移除这些属性的信息,请参见 。

reinterpret_cast 运算符将 null 指针值为目标类型的 null 指针值。

reinterpret_cast 的实际用于哈希函数,映射到其值设置为索引,在两个不同的值很少最终获取相同索引。

// expre_reinterpret_cast_Operator.cpp// compile with: /EHsc#include 
// Returns a hash code based on an addressunsigned short Hash( void *p ) { unsigned int val = reinterpret_cast
( p ); return ( unsigned short )( val ^ (val >> 16));}using namespace std;int main() { int a[20]; for ( int i = 0; i < 20; i++ ) cout << Hash( a + i ) << endl;}

reinterpret_cast 允许指针被视为一个整型。该结果然后位从及自身的 XORed 导致唯一索引 (仅对于高度概率)。索引通过对函数的返回类型的标准 C 样式转换然后截断。


参考

转载地址:http://ypyzx.baihongyu.com/

你可能感兴趣的文章
动态规划---->货郎担问题
查看>>
添加虚拟子网
查看>>
Ubuntu 12.04 root用户登录设置
查看>>
存储过程点滴
查看>>
Maven编译跳过test的设置
查看>>
[LeetCode]22.Generate Parentheses
查看>>
计算A/B Test需要的样本量
查看>>
二叉树前序中序后序遍历的非递归方法
查看>>
mysql 行转列列转行
查看>>
《设计模式系列》---桥接模式
查看>>
[Unity3d]Shader 着色器 学习前了解知识
查看>>
Linux中文件颜色所代表的属性和颜色
查看>>
Redrain duilib中事件委托存在的问题
查看>>
43、我的C#学习笔记9
查看>>
字符串的简单操作
查看>>
C#新功能--命名参数与可选参数
查看>>
strtok和strtok_r
查看>>
维辰超市:借助云商城成功转型新零售
查看>>
web.xml中<load-on-start>n</load-on-satrt>作用
查看>>
【算法】CRF
查看>>