Цель typedef - скрыть детали реализации, но определение свойства указателя слишком сильно скрывает и затрудняет чтение и понимание кода.
Поэтому, пожалуйста, не делайте этого.
Если вы хотите скрыть детали реализации (что часто бывает полезно), не скрывайте часть указателя. Взять, к примеру, прототип для стандартного интерфейса FILE
:
FILE *fopen(const char *filename, const char *mode);
char *fgets(char *s, int size, FILE *stream);
здесь fopen возвращает указатель на некоторую структуру FILE
(для которой вы не знаете подробностей реализации). Возможно, FILE
не очень хороший пример, потому что в этом случае он мог бы работать с некоторым типом pFILE, который скрывал тот факт, что он является указателем.
pFILE fopen(const char *filename, const char *mode);
char *fgets(char *s, int size, pFILE stream);
Однако это сработает только потому, что вы никогда не возитесь с контентом, на который указывает непосредственно. В тот момент, когда вы набираете указатель на то, что вы в некоторых местах модифицируете код, мне становится очень трудно читать.