最近在学习 c 语言,发现函数定义要么返回一个确定的类型,要么不返回值,那么我想知道如果我一个函数返回的类型不确定,该怎么处理?我可能返回一个用 struct 定义的结构体,也有可能返回一个数字类型,那么我函数的类型定义该怎么写?
返回 union 类型能解决你的需求吗?我对 c 语言不熟,抛砖引玉一下,在别的支持类型的语言里,是可以声明某个値属于几个类型中的一个的。比如
我也抛砖引玉,等其他人补充
我个人认为,使用 C 等静态类型语言时,应当把平常写 Ruby 的这种动态类型思维扭过来,应当确保:一个函数只返回一个确定的类型。
我一开始也是在想能不能用联合类型 但是在研究 c 的时候找不到类似于联合类型的功能
多谢
C 里面一个类型的内存结构是固定的。所以你只能通过返回结构体带成员变量 int tag 的方式来判断这个结构体的类型,然后把每种可能的值都存在里面。union 不过是为了节省一部分内存。
传入变量地址,函数内部修改
用 void*呗