Из примера
unsigned long x = 12345678UL
Мы всегда узнали, что компилятор должен видеть только "длинный" в приведенном выше примере, чтобы установить 4 байта (в 32 бит) памяти. Вопрос в том, почему мы должны использовать L/UL в длинных константах даже после объявления его длинным.