We can use header file to implement encapsulation mechanism, the client program can use declaration in the header file only and have absolutely no knowledge of the implementation.
We can use type cast to convert one pointer of user defiend struct to another, so that we can access the member of the another user defined struct.
We can use function pointer variable to perform different behavior.