Abstract Data Type in C