Coupons court au suspense,
la question de Steam était :
Donc il s'agit du "Marlin", un des firmware qui pilotent les imprimantes 3D.
1 ) quelle est la différence entre ces deux bouts de code
Le bout de code qui se trouve dans le marlin_main.cpp :
a)
// Initial retract before move to filament change position
const float retract = parser.seen('E') ? parser.value_axis_units(E_AXIS) : 0
#ifdef PAUSE_PARK_RETRACT_LENGTH
- (PAUSE_PARK_RETRACT_LENGTH)
#endif
;
b)
// Initial retract before move to filament change position
const float retract = parser.seen('E') ? parser.value_axis_units(E_AXIS) : 0
#if defined(PAUSE_PARK_RETRACT_LENGTH) && PAUSE_PARK_RETRACT_LENGTH > 0
- (PAUSE_PARK_RETRACT_LENGTH)
#endif
;
Et
la réponse de DeepPurple fut :
Ce sont des règles de pré-compilation. J'évite de les utiliser car elle ne sont pas très lisibles. Mais elles peuvent servir pour adapter un code à une configuration matérielle...
J'ai trouvé
cet intéressant article, en anglais.
J'en déduis que dans le second cas, on ne soustrait PAUSE_PARK_RETRACT_LENGTH que si elle a été définie et est positive. Alors que dans le premier cas, on la soustrait dans tous les cas.