HP C A.06.05 Reference Manual

Expressions and Operators
Cast Operator
Chapter 5102
int *int_p;
float *float_p;
struct S *str_p;
extern foo(struct T *);
...
int_p = (int *) float_p;
float_p = (float *) str_p;
foo((struct T *) str_p);
The cast is required whenever you assign a pointer value to a pointer variable that has a
different base type, and when you pass a pointer value as a parameter to a function that has
been prototyped with a different pointer type. The only exception to this rule concerns the
generic pointer. You may assign any pointer value to a generic pointer without casting.