---C/C++关键字--- asm、inline、register、virtual、volatile 全解

asm:

asm允许你在你的代码中直接插入汇编语言指令, 各种不同的编译器为这一个指令允许不一致形式, 比如:


    asm {
      instruction-sequence
    }

or 

    asm( instruction );
inline:

inline这个关键字请求编译器扩张一个给定的函数。它向这个函数发出一条插入代码的call。函数里面有静态变量,嵌套的,switches,或者是递归的时候不给予内联。当一个函数声明包含在一个类声明里面时,编译器会尝试的自动把函数内联。
关键字inline请求编译器给一个函数扩展空间,它向这个函数发出一条插入代码的call.函数里面有 static 数据, 循环, switches, 或者是递归的时候不给予内联.当一个函数声明包含在一个类声明里面时,编译器会尝试的自动把函数内联.

//语法:
inline int functionA( int i ) {
    ...
  }
register:

关键字register 请求编译器优化它定义的变量,并且通常这种优化比人工优化的好.

virtual:

关键字virtual 能用来创建虚函数,它通常不被派生类有限考虑.但是假如函数被作为一个纯的虚函数 (被=0表示)时, 这种情况它一定被派生类有限考虑.

//语法:
  virtual return-type name( parameter-list );
  virtual return-type name( parameter-list ) = 0;
volatile:

关键字volatile在描述变量时使用,阻止编译器优化那些以valatile修饰的变量,volatile被用在一些变量能被意外方式改变的地方,例如:抛出中断,这些变量若无volatile可能会和编译器执行的优化 相冲突.

猜你喜欢

转载自blog.csdn.net/m0_37925202/article/details/79397883