Page 3 of 3

Re: Max() and Min(), procedure and macro variants.

Posted: Fri Apr 25, 2025 10:10 am
by pjay
The macro won't do the job here as it'll return 0 for a 255 input, I think you need: '(Bool(a <= 255) ...'

Re: Max() and Min(), procedure and macro variants.

Posted: Fri Apr 25, 2025 10:30 am
by Mijikai
Playing around:

Code: Select all

EnableExplicit

Macro min(_a_,_b_,_c_)
  !((v_#_a_) < (v_#_b_) ? (v_#_c_ = v_#_a_) : (v_#_c_ = v_#_b_));
EndMacro

Macro max(_a_,_b_,_c_)
  !((v_#_a_) > (v_#_b_) ? (v_#_c_ = v_#_a_) : (v_#_c_ = v_#_b_));
EndMacro

Procedure.i main()
  Protected.i a,b,c
  a = 1
  b = 2
  min(a,b,c)
  Debug c
  max(a,b,c)
  Debug c
  ProcedureReturn #Null
EndProcedure

End main()