Dipende molto (sulla semantica di - e di > ).
Innanzitutto, non hai menzionato il tipo di a e di b . Ma supponiamo per semplicità che abbiano entrambi lo stesso tipo integrale (ad esempio C int o long ).
Quindi, a - b potrebbe essere errato (si pensi a casi strani come overflow) o comportamento indefinito (si pensi all'aritmetica del puntatore, in alcuni casi la differenza di calcolo tra puntatori non collegati è UB). E in alcuni linguaggi di programmazione e con alcuni tipi, è possibile definire a-b e confrontare con 0, ma a>b potrebbe non essere. A volte in C ++ a-b , a>b , x>0 sarebbero tre diversi operatori definiti dall'utente di alcuni utenti specificati class (immagina alcuni bignum library) con diversi comportamenti e prestazioni.
Anche a e b potrebbero avere alcuni tipi bizzarri (forse matrici ...) e confrontarli potrebbe avere senso quando il calcolo delle loro differenze è inaffidabile, o richiede tempo, ecc.
Leggi la regola as-if e le specifiche precise del tuo particolare linguaggio di programmazione (e la sua semantica ).
Infine, in molti casi a - b > 0 è più leggibile di a > b (ad esempio quando a e b sono istanti temporali, la loro differenza è una durata). Quindi dipende davvero.
Sostituendo a-b>0 con a>b (o viceversa, se utile) -per interi- è una micro-ottimizzazione che la maggior parte di ottimizzare i compilatori farebbe meglio di te. Quindi non preoccuparti!
Is it a good practice as a coding habit?
Non nel 2018 , a meno che non migliori la leggibilità. Devi prestare molta attenzione a per rendere il tuo codice leggibile .
BTW, IMHO 0 di solito non è un numero magico . È piuttosto speciale (in alcuni rari casi potrebbe essere un numero magico, ma scegliere 0 come magia è di cattivo gusto e incline agli errori ...).