LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Тот чувак выше прав, это не UB, твой код тупо не скомилируется.

tcc компилирует, sdcc компилирует. gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr

Если у тебя что-то не компилируется, то это не значит, что не компилируется у всех.

Потому что sizeof(void*) > sizeof(int) на большинстве машин сейчас.

А switch не имеет ограничения на размер типа, главное чтобы он целым (integer) был. Адреса - это тоже, совершенно внезапно, целые (integer) числа. Да, тип int представляет целые (integer) числа. Но это совершенно не значит, что все целые (integer) числа обязаны иметь тип int.

Исправление Stanson, :

Тот чувак выше прав, это не UB, твой код тупо не скомилируется.

tcc компилирует, sdcc компилирует. gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr

Если у тебя что-то не компилируется, то это не значит, что не компилируется у всех.

Потому что sizeof(void*) > sizeof(int) на большинстве машин сейчас.

А switch не имеет ограничения на размер типа, главное чтобы он целым (integer) был. Адреса - это тоже, совершенно внезапно, целые (integer) числа. Да, тип int представляет целые (integer) числа. Но это совершенно не значит, что все целые (integer) числа имеют тип int.

Исправление Stanson, :

Тот чувак выше прав, это не UB, твой код тупо не скомилируется.

tcc компилирует, sdcc компилирует. gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr

Если у тебя что-то не компилируется, то это не значит, что не компилируется у всех.

Потому что sizeof(void*) > sizeof(int) на большинстве машин сейчас.

А switch не имеет ограничения на размер типа, главное чтобы он целым (integer) был. Адреса - это тоже, совершенно внезапно, целые (integer) числа. Тип int представляет целые (integer) числа. Это совершенно не значит, что все целые (integer) числа имеют тип int.

Исправление Stanson, :

Тот чувак выше прав, это не UB, твой код тупо не скомилируется.

tcc компилирует, sdcc компилирует. gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr

Если у тебя что-то не компилируется, то это не значит, что не компилируется у всех.

Потому что sizeof(void*) > sizeof(int) на большинстве машин сейчас.

А switch не имеет ограничения на размер типа, главное чтобы он целым был. Адреса - это тоже, совершенно внезапно, целые числа.

Исправление Stanson, :

Тот чувак выше прав, это не UB, твой код тупо не скомилируется.

tcc компилирует, sdcc компилирует. gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr

Если у тебя что-то не компилируется, то это не значит, что не компилируется у всех.

Потому что sizeof(void*) > sizeof(int) на большинстве машин сейчас.

А switch не имеет ограничения на размер типа, главное чтобы он целым был. Адреса - это тоже, внезапно, целые числа.

Исправление Stanson, :

Тот чувак выше прав, это не UB, твой код тупо не скомилируется.

tcc компилирует, sdcc компилирует. gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr

Если у тебя что-то не компилируется, то это не значит, что не компилируется у всех.

Потому что sizeof(void*) > sizeof(int) на большинстве машин сейчас.

А switch не имеет ограничения на размер типа, главное чтобы он целым был.

Исправление Stanson, :

Тот чувак выше прав, это не UB, твой код тупо не скомилируется.

tcc компилирует, sdcc компилирует. gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr

Если у тебя что-то не компилируется, то это не значит, что не компилируется у всех.

Потому что sizeof(void*) > sizeof(int) на большинстве машин сейчас.

А switch не имеет ограничения на размер типа.

Исходная версия Stanson, :

Тот чувак выше прав, это не UB, твой код тупо не скомилируется.

tcc компилирует, sdcc компилирует. gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr

Если у тебя что-то не компилируется, то это не значит, что не компилируется у всех.