Хорошая идея - использовать intptr_t
в качестве хранилища общего назначения ( для хранения указателей и целочисленных значений) вместо void *
? (Как видно здесь: http://www.crystalspace3d.org/docs/online/manual/Api1_005f0-64_002dBit-Portability-Changes. html )
Для того, что я уже читал:
int
-> void *
-> int
roundtrip не гарантирует сохранения исходного значения. ; Я думаю, int
-> intptr_t
-> int
будет выполнять арифметику указателя void *
, так и intptr_t
требует приведений, поэтому здесь нет преимущества void *
означает менее явное приведение при хранении указателей, intptr_t
означает меньшее количество приведений при сохранении целочисленных значений intptr_t
требует C99 Что еще мне следует учесть?