#include <opcodes.h>
const char *getOpcodeName(
uint8_t op
)
{
#define OPCODE(x, y) if((0x##y)==op) return "OP_" #x;
OPCODES
#undef OPCODE
return "OP_UNKNOWN";
}
链接到这里的代码:https ://github.com/znort987/blockparser/blob/master/opcodes.cpp
这是包含的opcodes.h的链接
我知道这只是一个格式奇怪的函数,但是,我想知道*
函数名称开头的确切含义。我认为它与指针有关?
此外,#undef
and#define
语句如何有效?任何一个后面都没有分号,其中一个似乎被定义为单行函数。是什么(0x##y)
意思?是什么return "OP_" #x
意思?我以前从未遇到过这样的语法。
我想更认真地进入 C++,但是在查看代码时很难知道到底发生了什么。如何最有效地学习语法和规则?