Mesma saída para htonl () e ntohl () em um inteiro

Eu corri o seguinte programa na máquina [LE] little-endian [Linux, processador Intel]. Não consigo explicar as três saídas no snippet de código abaixo. Como a máquina é LE, o valor dea é armazenado como0x78563412. Ao imprimir, está exibindo seu valor real. Como é uma máquina LE, esperontohl() para ser um não-op e exibir0x78563412, o que está fazendo. No entanto, espero0x12345678 para a segunda declaração de impressão contendohtonl(). Alguém por favor pode me ajudar a entender por que eles são iguais?

int main() 
{
    int a = 0x12345678; 

    printf("Original - 0x%x\n", (a)); 
    printf("Network - 0x%x\n", htonl(a)); 
    printf("Host - 0x%x\n", ntohl(a)); 

    return 0;
}

Saída:

Original - 0x12345678
Network - 0x78563412
Host - 0x78563412

questionAnswers(4)

yourAnswerToTheQuestion