Использование intptr_t вместо void *?

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

Что еще мне следует учесть?

23
задан RzR 12 June 2013 в 13:34
поделиться