Cómo entender esto definir macro?
Estoy aprendiendo el código de VM de Dalvik pero me detuve por algunas macros de C definidas en el archivo InterpC-portable.cpp . Son difíciles de entender para mí. El código es:
# define H(_op) &&op_##_op
Y en el archivo libdex / DexOpcodes.h , se usa así:
- JNI: Llamar a GetStaticMethodID explotar
- GLES 3.0 incluyendo gl2ext.h
- Android NDK: obtener el backtrace
- Android: Obtención de número aleatorio del método JNI
- Qt para android: cambia el icono de la aplicación
#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 son algunos enum variable. Pero, ¿cuál es el significado de la operación && en la macro H (_op)? No tiene sentido para obtener un puntero de puntero que no almacena en la memoria. ¿Alguien puede ayudarme? Gracias.
- Reconocimiento de Dongle USB en Android - Beaglebone
- Desbordamiento de tabla de referencia Jni
- Ejecutar ffmpeg como biblioteca en android
- ¿Está justificado utilizar C / C ++ para iOS / Android código de plataforma cruzada en este caso?
- Cómo depurar el código nativo de Android en un dispositivo real
- Qt Android: El teclado virtual sigue cambiando a mayúsculas cuando escribo un QLineEdit
- Convertir FILE * a ifstream C ++, Android NDK
- Android sólo juego en OpenGL: rendimiento en C ++ (NDK) vs Java (Dalvik)
&&
es el operador de valor de etiqueta . Devuelve la dirección de una etiqueta definida en el ámbito actual, utilizada como operando. Es una extensión gcc
.