Como comparar ponteiros C?

Recentemente, escrevi um código para comparar ponteiros como este:

if(p1+len < p2)

no entanto, alguns funcionários disseram que eu deveria escrever assim:

if(p2-p1 > len)

estar seguro. Aqui,p1&nbsp;ep2&nbsp;estáchar *&nbsp;ponteiroslen&nbsp;é um inteiro. Eu não tenho ideia sobre isso.

EDIT1: claro,p1&nbsp;ep2&nbsp;ponteiro para o mesmo objeto de memória em implorando.

EDIT2: apenas um minuto atrás, eu encontrei obogo&nbsp;desta questão no meu código (cerca de 3K linhas), porquelen&nbsp;é tão grande quep1+len&nbsp;não pode armazenar em 4 bytes de ponteiro, entãop1 + len <p2&nbsp;éverdadeMas não deveria de fato, então acho que devemos comparar ponteiros como esse emalguma situação:

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