1. marlin2.0 宏定义分析#if ENABLED(MARLIN_DEV_MODE)

本文深入分析了Marlin 2.0中启用开发模式的宏定义 #IF ENABLED(MARLIN_DEV_MODE),解释了其如何开启特殊命令,并展示了相关的宏展开过程,包括NUM_ARGS、DO、_DO_N等宏的使用。
摘要由CSDN通过智能技术生成

这个宏定义有打开  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,...)  b

ENABLED(MARLIN_DEV_MODE)
=DO(ENA,&&,MARLIN_DEV_

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值