LINUX.ORG.RU

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

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

Стандарт говорит только то, что указатель можно преобразовать в uintptr_t и обратно, и получится тот же указатель. Я так понимаю, это в основном нужно для сериализации. Ничего о свойствах получившегося числа стандарт не говорит. Например можно просто переворачивать все биты и это будет по стандарту, ну а про сравнение таких uintptr-ов, думаю, и так всё понятно.

Именно про это я и пишу почти весь тред.

Хотя можно предположить, что компиляторы в реальном мире таки будут стараться делать адекватные числа.

Я допускаю что он может просто не суметь на особо странной архитектуре дать нормальное линейное представление. В случае когда выдаются какие нибудь дескрипторы на объекты. Или невозможности вообще читать битовое представление линейного адреса в юзерспейсе на уровне архитектуры.

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

Стандарт говорит только то, что указатель можно преобразовать в uintptr_t и обратно, и получится тот же указатель. Я так понимаю, это в основном нужно для сериализации. Ничего о свойствах получившегося числа стандарт не говорит. Например можно просто переворачивать все биты и это будет по стандарту, ну а про сравнение таких uintptr-ов, думаю, и так всё понятно.

Именно про это я и пишу почти весь тред.

Хотя можно предположить, что компиляторы в реальном мире таки будут стараться делать адекватные числа.

Я допускаю что он может просто не суметь на особо странной архитектуре дать нормальное линейное представление. В случае когда выдаются какие нибудь дескрипторы на объекты. Или невозможности вообще читать битовое представление линейного адреса.

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

Стандарт говорит только то, что указатель можно преобразовать в uintptr_t и обратно, и получится тот же указатель. Я так понимаю, это в основном нужно для сериализации. Ничего о свойствах получившегося числа стандарт не говорит. Например можно просто переворачивать все биты и это будет по стандарту, ну а про сравнение таких uintptr-ов, думаю, и так всё понятно.

Именно про это я и пишу почти весь тред.

Хотя можно предположить, что компиляторы в реальном мире таки будут стараться делать адекватные числа.

Я допускаю что он может просто не суметь на особо странной архитектуре дать нормальное линейное представление. В случае когда выдаются какие нибудь дескрипторы на объекты.

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

Стандарт говорит только то, что указатель можно преобразовать в uintptr_t и обратно, и получится тот же указатель. Я так понимаю, это в основном нужно для сериализации. Ничего о свойствах получившегося числа стандарт не говорит. Например можно просто переворачивать все биты и это будет по стандарту, ну а про сравнение таких uintptr-ов, думаю, и так всё понятно.

Именно про это я и пишу почти весь тред.

Хотя можно предположить, что компиляторы в реальном мире таки будут стараться делать адекватные числа.

Я допускаю что он может просто не суметь на особо странной архитектуре дать нормальное линейное представление.