繁体   English   中英

如何理解这个定义宏?

[英]how to understand this define macro?

我正在学习Dalvik VM代码,但是在文件InterpC-portable.cpp中被一些奇怪的C定义宏停止了。 他们很难理解我。 代码是:

# define H(_op)             &&op_##_op

在文件libdex / DexOpcodes.h中 ,它的使用方式如下:

#define DEFINE_GOTO_TABLE(_name) \
  static const void* _name[kNumPackedOpcodes] = {                      \
  /* BEGIN(libdex-goto-table); GENERATED AUTOMATICALLY BY opcode-gen */ \
  H(OP_NOP),                                                            \
  H(OP_MOVE),                                                           \
  H(OP_MOVE_FROM16),                                                    \
  ...

OP_NOP,OP_MOVE,OP_MOVE_FROM16是一些枚举变量。 但是H(_op)宏中&&操作的含义是什么? 获取不存储在内存中的指针指针是没有意义的。 有人可以帮帮我吗? 谢谢。

&&标签值运算符 它返回当前作用域中定义的标签的地址,用作操作数。 这是一个gcc扩展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM