Wie vergleiche ich C-Zeiger?

Kürzlich habe ich einen Code geschrieben, um Zeiger wie diesen zu vergleichen:

if(p1+len < p2)

Einige Mitarbeiter meinten jedoch, ich solle so schreiben:

if(p2-p1 > len)

sicher sein. Hier,p1 undp2 sindchar * Zeiger,len ist eine ganze Zahl. Davon habe ich keine Ahnung. Stimmt das?

EDIT1: natürlichp1 undp2 zeiger auf dasselbe speicherobjekt beim betteln.

EDIT2 : Vor einer Minute habe ich das gefundenScheiße von dieser Frage in meinem Code (ca. 3K Zeilen), weillen ist so groß, dassp1+len kann nicht in 4 Bytes des Zeigers speichern, alsop1 + len <p2 istwahrAber das sollte eigentlich nicht so sein, also sollten wir Zeiger wie diesen in vergleicheneine Situation:

if(p2 < p1 || (uint32_t)p2-p1 > (uint32_t)len)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage