gcc отказывается компилировать на x86_64 конструкции типа reinterpret_cast<int>(some_void_ptr) (говорит "error: cast from 'void*' to 'int' loses precision"). Опытным путём было установлено, что в long он конвертирует нормально. Но: разве разрядность int не должна соответствовать разрядности системы, т. е. в случае i386 быть равной 32 битам и совпадать с long, а в случая x86_64 составлять 64 бита и совпадать с long long и с размером указателя? Почему же gcc тут находит какую-то потерю точности?
Ответ на:
комментарий
от fghj
Ответ на:
комментарий
от Pi
Ответ на:
комментарий
от fghj
Ответ на:
комментарий
от Pi
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Die-Hard
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [GCC] компиляция HL1-сервера под Linux (2008)
- Форум GTK: int и void* (2006)
- Форум Преобразование int в char (2002)
- Форум c++, преобразование int в string (2004)
- Форум Бинарная совместимость, серия 3 (2023)
- Форум Я не знаю как писать на «C» ¯\_(ツ)_/¯. (2017)
- Форум Как кросскомпилировать программы С++? (2011)
- Форум struct tm и преобразование int в char* (2011)
- Форум Преобразование дроби в int с сохранением остатка. (2019)
- Форум как работать с template<int ... args> void func()? (2013)