finish func.c