Создаётся переменная типа unsigned short int, которая почти во всех современных компиляторах имеет размер 2 байта. Затем ей присваивается значение 1. В случае архитектуры Little Endian, единица запишется в младший байт переменной, а в случае Big Endian - в старший байт. Дальше именно это и проверяется - конструкция *((unsigned char *) &x) получает значение младшего байта переменной. Если там оказался ноль, значит архитектура Big Endian.
Код, делающий то же самое, но проверяющий старший байт:
#include <stdio.h>
unsigned short x = 1; /* 0x0001 */
int main(void)
{
printf("%s\n", *((unsigned char *) &x + 1) == 0 ? "little-endian" : "big-endian");
return 0;
}