c-将typedef结构传递给需要原始结构的函数

  • 本文关键字:结构 原始 函数 typedef c struct
  • 更新时间 :
  • 英文 :


在C中,typedef用于为另一个数据类型创建额外的名称(别名(,但不会创建新的类型,除非在数组类型的限定typedef的模糊情况下,typedef限定符被转移到数组元素类型。

如果我们有一个接受结构的函数,那么有可能传入typedef'dd类型吗?

例如,假设我们有:

typedef struct foo {
...
} Bar;
void func1(struct foo* arg0) {
// do something
}

有可能做到吗:

Bar bar0;
func1(bar0);

如果是,为什么可能?函数头指定它接受类型为struct foo*的参数,而不是*Bar

struct fooBar兼容,因此可以使用其中一个来代替另一个,没有问题。

但是,这个func1(bar0);是按值传递结构的,所以您会得到一个编译器错误。

最新更新