我是靠谱客的博主 大胆跳跳糖,最近开发中收集的这篇文章主要介绍reinterpret_cast 最小demo,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.代码示例 

reinterpret_cast <目的类型> (参数) 
用途范围:
是一个强制类型转换符。
用在任意的指针之间的转换、引用之间的转换,指针和足够大的int型之间的转换,整数到指针的转换

例子:
     int *intptr;
     char *chptr = reinterpret_cast<char*>(intptr);
对于reinterpret_cast运算符谨慎使用,使用的地方:
A pointer to any integral type large enough to hold it    (指针转向足够大的整数类型)
A value of integral or enumeration type to a pointer (从整形或者enum枚举类型转换为指针)
A pointer to a function to a pointer to a function of a different type (从指向函数的指针转向另一个不同类型的指向函数的指针)
A pointer to an object to a pointer to an object of a different type (从一个指向对象的指针转向另一个不同类型的指向对象的指针)
A pointer to a member to a pointer to a member of a different class or type, if the types of the members are both function types or object types  (从一个指向成员的指针转向另一个指向类成员的指针!或者是类型,如果类型的成员和函数都是函数类型或者对象类型)

#demo.cpp
#include <iostream>
using namespace std;
struct Cow{
  int mCount;
  int leCount;
  char str;
  bool bl;
};

int main(){
  Cow cow;
  cow.mCount = 8;
  cow.leCount = 5;
  cow.str = 'f';
  cow.bl = true;
  
  Cow *cowptr = &cow;
  int *intptr = reinterpret_cast<int*>(cowptr);
  //int
  //cout << *cowptr << endl;
  cout << *intptr << endl;
  intptr ++;
  //int 
  cout << *intptr << endl;
  intptr ++;
  
  //char
  char *chptr = reinterpret_cast<char*>(intptr);
  cout << *chptr << endl;
  intptr ++;
  //bool
  bool *blptr = reinterpret_cast<bool*>(intptr);
  cout << true << endl;
}
  



最后

以上就是大胆跳跳糖为你收集整理的reinterpret_cast 最小demo的全部内容,希望文章能够帮你解决reinterpret_cast 最小demo所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部