#ifdef NDEBUG #define REG_JNI(name) { name } struct RegJNIRec { int (*mProc)(JNIEnv*); }; #else #define REG_JNI(name) { name, #name } struct RegJNIRec { int (*mProc)(JNIEnv*); const char* mName; }; #endif
显然,带参数的REG_JNII预编译宏实际上等价于一个“{name}”,而name是一个参数;而RegJNIRec类型实际上是一个包含函数指针的结构体类型。