这个宏定义有打开 MARLIN_DEV_MODE
// Enable Marlin dev mode which adds some special commands
#define MARLIN_DEV_MODE
#if ENABLED(MARLIN_DEV_MODE)
#define ENABLED(V...) DO(ENA,&&,V)
#define DO(W,C,V...) _DO_N(W,C,NUM_ARGS(V),V)
#define _NUM_ARGS(_,Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A,OUT,...) OUT
#define NUM_ARGS(V...) _NUM_ARGS(0,V,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)
#define _DO_N(W,C,N,V...) __DO_N(W,C,N,V)
#define __DO_N(W,C,N,V...) _DO_##N(W,C,V)
#define _DO_1(W,C,A) (_##W##_1(A)) = _ENV_1(MARLIN_DEV_MODE)
#define _ENA_1(O) _ISENA(CAT(_IS,CAT(ENA_, O)))
#define _CAT(a,V...) a##V
#define CAT(a,V...) _CAT(a,V)
#define _ISENA(V...) IS_PROBE(V)
#define IS_PROBE(V...) SECOND(V, 0)
#define SECOND(a,b,

本文深入分析了Marlin 2.0中启用开发模式的宏定义 #IF ENABLED(MARLIN_DEV_MODE),解释了其如何开启特殊命令,并展示了相关的宏展开过程,包括NUM_ARGS、DO、_DO_N等宏的使用。
最低0.47元/天 解锁文章
622

被折叠的 条评论
为什么被折叠?



