Хорошо ли использовать 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
Что еще я должен принять во внимание?