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