问题描述
在jdk8源码的allocation.hpp中,有
#define METASPACE_OBJ_TYPE_DECLARE(name) name ## Type,#define METASPACE_OBJ_TYPE_NAME_CASE(name) case name ## Type: return #name; enum Type { // Types are MetaspaceObj::ClassType, MetaspaceObj::SymbolType, etc METASPACE_OBJ_TYPES_DO(METASPACE_OBJ_TYPE_DECLARE) _number_of_types };
不理解 ## 在 define 中是什么语法规则.
问题解答
回答1:#define是定义变量,2个##是连接运算符,可以查看
回答2:## 是连接运算符,参见 https://stackoverflow.com/que...