#define BRACKET_L() ( #define BRACKET_R() ) #define PP_NARG(...) \ PP_NARG_ ( __VA_ARGS__, PP_RSEQ_N() ) #define PP_NARG_(...) \ PP_ARG_N BRACKET_L() __VA_ARGS__ BRACKET_R() #define PP_ARG_N( \ _1, _2, _3, _4, _5, _6, _7, _8, _9,_10, \ _11,_12,_13,_14,_15,_16, N,...) N #define PP_RSEQ_N() \ 16,15,14,13,12,11,10, \ 9,8,7,6,5,4,3,2,1,0
调用PP_NARG(a, b, c) 返回 3,怎么都不看懂,哪位高人给指点一二