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 ep2 estáchar * ponteiroslen é um inteiro. Eu não tenho ideia sobre isso.

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

EDIT2: apenas um minuto atrás, eu encontrei obogo desta questão no meu código (cerca de 3K linhas), porquelen é tão grande quep1+len não pode armazenar em 4 bytes de ponteiro, entãop1 + len <p2 é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)

questionAnswers(5)

yourAnswerToTheQuestion