Dynamic Method Dispatch In C