`
wx1569567608
  • 浏览: 71225 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

C++ reinterpret_cast汇编说明

 
阅读更多

int afa(int &a)
{
 return a=8;
}

unsigned long cc=reinterpret_cast<unsigned long>(afa);

 

 

对应的汇编代码 

 

 mov cc,offset afa

对于一个 变量CC 只是一个地址,汇编中为直接寻址

mov [cc],eax

mov cc,eax是等价的

 

mov cc,offset afa

lea cc,afa(汇编中不能这样写)

lea eax,afa

mov cc,eax

 

又是等价的。

 

cc本身的地址可以用

mov eax,offset cc计算得知

 

 

不同的是CPU时钟周期

 

转载于:https://my.oschina.net/u/158055/blog/694477

分享到:
评论

相关推荐

    C++关键字_全

    1. **asm**:尽管在现代C++中已经被`__asm`替代,但`asm`关键字曾经用于将汇编语言嵌入到C/C++程序中,以实现更底层的控制和性能优化。然而,随着C++标准的发展,直接使用`asm`已不再推荐,因为它可能导致跨平台兼容...

    C++面试常问知识点总结

    C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针、try—catch等等; C++可复用性高,C++引入了模板的概念,后面在此基础上,实现了方便...

    C++关键字全集整合

    asm关键字用于汇编语言嵌入在C/C++程序里编程,从而在某些方面优化代码。虽然用asm关键字编译时编译器不会报错,但是asm模块的代码是没有意义的,因为它已经被__asm替代了。 其次,让我们来看一下auto关键字。auto...

    c++关键字.pdf

    3. `cast`系列:`const_cast`, `dynamic_cast`, `reinterpret_cast`, `static_cast`这四个关键字用于类型转换。`const_cast`用于去除或添加`const`和`volatile`限定符,`dynamic_cast`用于在运行时进行面向对象的...

    C++关键字及说明解释.docx

    3. 强制类型转换:C++提供了五种类型的强制类型转换——`const_cast`, `dynamic_cast`, `reinterpret_cast`, `static_cast`, 和 `cast`. 这些关键字用于在不同情况下安全地转换数据类型。 - `const_cast`用于去除或...

    C++学习资料打印版

    #### bad_cast, const_cast, dynamic_cast, reinterpret_cast, static_cast 这些关键字都是类型转换运算符,用于在不同类型之间执行显式转换。 - **bad_cast**:当运行时类型识别(RTTI)检查失败时抛出此异常,通常...

    C++关键字及说明解释.pdf

    1. `asm`:在C++中,`asm`关键字用于内联汇编,允许程序员在C++代码中插入汇编指令。然而,现代编译器通常能够生成高效的机器码,因此直接使用`asm`的机会较少。在某些情况下,它可能用于特定的性能优化或硬件交互。...

    c++关键字c++关键字c++关键字

    3. **类型转换关键字**: C++提供了多种类型转换关键字,包括`const_cast`、`dynamic_cast`、`reinterpret_cast`和`static_cast`,它们用于在不同类型之间安全地转换。`const_cast`用于改变变量的`const`或`volatile`...

    C++关键字[参考].pdf

    3. `_cast` 关键字:C++提供了四种类型的类型转换关键字,分别是`const_cast`、`dynamic_cast`、`reinterpret_cast`和`static_cast`。它们提供了更安全、更精确的类型转换方式,比如`const_cast`用于改变变量的`...

    C++关键字-全.pdf

    3. `cast`系列:`const_cast`、`dynamic_cast`、`reinterpret_cast`和`static_cast`是C++中的类型转换关键字,分别用于不同的转换场景: - `const_cast`用于移除或添加`const`或`volatile`属性。 - `dynamic_cast`...

    C++面试八股文深度总结

    2. 安全性:C++增加了const常量、引用和四种类型的cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast),以及智能指针(如std::unique_ptr、std::shared_ptr),这些特性旨在提高代码的安全性,...

    C++资源收藏

    3. `cast`系列:`const_cast`, `dynamic_cast`, `reinterpret_cast`, `static_cast`是C++中的类型转换关键词。它们分别用于不同类型的转换操作,如改变常量性、在运行时安全地转换继承层次结构内的对象、强制转换...

    C++关键字[全][定义].pdf

    3. `cast`系列: `const_cast`, `dynamic_cast`, `reinterpret_cast`, `static_cast`是C++中的类型转换关键字。它们分别用于改变对象的`const`或`volatile`属性、在继承层次结构中安全地转换指针或引用、执行任意的位...

    C++关键字[全].pdf

    3. `cast`关键字:C++提供了多种类型转换关键字,包括`const_cast`、`dynamic_cast`、`reinterpret_cast`和`static_cast`,它们分别用于不同类型的转换场景,如修改`const`属性、在运行时安全地转换继承层次中的对象...

    C++关键字-全.docx

    以下是对C++中一些重要关键字的详细说明: 1. `asm`:这是一个过时的关键字,用来在C++代码中嵌入汇编语言。尽管在现代C++中已经不再推荐使用,但在早期版本中,它允许程序员对特定部分的代码进行低级别优化。 2. ...

    C++八股,用于自己学习,csdn网友有需要可以自取

    C++通过增加const常量、引用、四种类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针、try-catch异常处理等机制来提升安全性。此外,C++还具有很高的可复用性,它引入了模板的概念,...

    C++高级教程 讲义

    6. C++的类型系统和转换:C++提供了多种类型转换方式,如隐式转换、显式转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)等。 7. C++与操作系统的交互:C++可以轻松地与Windows和Unix系统接口,...

    C与C++笔试总结

    - C++不是类型安全的语言,因为它允许不同类型间的强制转换,如`reinterpret_cast`,可能导致潜在的类型不匹配问题。 4. **main函数执行前的代码** - 全局对象和`static`变量在`main`函数之前就已经构造。 5. **...

    最diaoC++面试题

    C++提供了更多的安全特性,如const常量、引用、四种类型的cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针(如std::unique_ptr、std::shared_ptr)以及异常处理机制(try-catch)。...

    特殊的C++笔试题,非常不错的

    3. `reinterpret_cast`:用于任意类型的转换,不进行类型检查,通常用于底层位操作或指针转换,具有潜在的不安全性。 4. `static_cast`:用于静态类型转换,如非`const`转`const`,整型和浮点型之间的转换,以及在...

Global site tag (gtag.js) - Google Analytics