c语言函数类型有哪些