Dans jdk8
源码的allocation.hpp
, il y a
#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
};
Je ne comprends pas quelles sont les règles grammaticales ##
在 define
.
#define
est une variable définie, et les deux ## sont des opérateurs de connexion, vous pouvez visualiser##
est un opérateur de concaténation, voir https://stackoverflow.com/que...