¿Por qué sucede esto con el operador sizeof cuando se compara con un número negativo? [duplicar

Esta pregunta ya tiene una respuesta aquí:

perador @sizeof () en la instrucción if 5 respuestas

¿Qué está pasando realmente aquí? El resultado ahora es "Falso":

#include <stdio.h>

int main()
{
     if (sizeof(int) > any_negative_integer)
         printf("True");
     else
         printf("False");
     return 0;
}

Si lo cambio a:

if (sizeof(int) < any_negative_integer)

la salida es "Verdadero".

Actualizar ella misma pregunt ya ha sido preguntado, no pude encontrarlo antes de preguntar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta