Стандарт C ++ не определяет размеры каждого из типов (кроме char
), поэтому размер unsigned long
определяется реализацией. В большинстве случаев, о которых я знаю, unsigned long
- это 32-разрядный тип без знака, а UINT64
(тип реализации, даже не упомянутый в стандарте) - это 64-разрядное целое число без знака в VS.