История изменений
Исправление
hateyoufeel,
(текущая версия)
:
gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr
Ну так какую угодно верещалку кому угодно можно заткнуть. Что не спасает от ошибок. Ну и это другой код уже получается.
А switch не имеет ограничения на размер типа. Адреса - это тоже, совершенно внезапно, целые (integer) числа.
Нет. Указатели – это не целые и вообще не числа. Сюрприз!
Исходная версия
hateyoufeel,
:
gcc тоже скомпилирует если заткнуть его верещалку посредством (uintptr_t)ptr
Ну так какую угодно верещалку кому угодно можно заткнуть. Что не спасает от ошибок. Ну и это другой код уже получается.
А switch не имеет ограничения на размер типа.
Безусловно! Проблема в том, что выражение внутри оператора switch() должно быть целочисленным типом. Указатели им не являются.