【发布时间】:2010-11-15 12:21:18
【问题描述】:
我有一个结构,我将这个结构传递给函数。 也许函数原型是:
typedef struct
{
//Bla Bla
} ABC;
void func(ABC abc)
{
}
这个函数调用是值调用还是引用调用? 有人说“C 没有复制构造函数,所以我们不能传递带有值的用户定义类型”。 这个想法正确吗?
【问题讨论】:
我有一个结构,我将这个结构传递给函数。 也许函数原型是:
typedef struct
{
//Bla Bla
} ABC;
void func(ABC abc)
{
}
这个函数调用是值调用还是引用调用? 有人说“C 没有复制构造函数,所以我们不能传递带有值的用户定义类型”。 这个想法正确吗?
【问题讨论】:
按值调用。 C 是总是按值调用。
(C 没有复制构造函数,但是仍然可以通过创建第二个结构来复制结构,并将原始结构作为其初始化器。函数参数使用您作为参数传递的值进行初始化;它的工作机制相同。 )
【讨论】: