【发布时间】:2020-01-11 19:06:52
【问题描述】:
我正在尝试定义一个访问宏中定义的数组元素的 C++ 头文件。
数组定义为:
#define NOZZLE_TO_PROBE_OFFSET { 27, 35, -1.5 }
我正在尝试这样访问它,以获取第一个元素:
#define Z_STEPPER_ALIGN_XY { { NOZZLE_TO_PROBE_OFFSET[0] , Y_BED_SIZE/2 }, { X_BED_SIZE, Y_BED_SIZE/2 } }
但我收到以下错误:
Marlin/src/gcode/calibrate/../../inc/../../Configuration_adv.h:659:57: error: expected '}' before '[' token
#define Z_STEPPER_ALIGN_XY { { NOZZLE_TO_PROBE_OFFSET[0] , Y_BED_SIZE/2 }, { X_BED_SIZE, Y_BED_SIZE/2 } }
~ ^
我无法记住我的宏扩展规则,而且似乎也无法调用正确的谷歌术语来帮助解决这个问题。该消息是有道理的,但我不确定要尝试什么来替代表示数组访问。我想我希望预处理器做的是嵌入数组文字,然后是访问,这样输出就会扩展到{ 27, 35, -1.5 }[0] 之类的东西,我很感激对这个公认的 n00by 问题的反馈!
【问题讨论】:
标签: c++ macros preprocessor