Всегда ли это утверждение верно?

 assert(sizeof(int) != sizeof(long))

Ответы (2 шт):

Автор решения: gbg

Стандарт языка такой радости не гарантирует.

Пользуйтесь стандартыми типами с фиксированной длиной - int32_t, например.

→ Ссылка
Автор решения: AlexGlebe

Стандарт говорит только про минимальную длину типов :

  Type          Minimum bit width N
  signed char   8
  short int     16
  int           16
  long int      32
  long long int 64

А реальные размеры типов это уже на усмотрение реализации. Например, sizeof(int)*8 == 32 вполне может быть равен sizeof(long int)*8 == 32.

→ Ссылка