[code=C/C++][/code]struct Q{
int a;
int b;
};
struct Q ff(struct Q ss)
{
struct Q xx;
xx.a = 4;
xx.b = 6;
return xx;
}
int main()
{
struct Q s;
struct Q t;
s.a = 2;
s.b = 3;
t = s;
t = ff(s);
return 0;
}
对于如上一个结构体,或者类似一个类(没有拷贝构造函数),不考虑存在指针成员的前提下,测试均能完成如下三个要求:
1) 对象或者结构体以值传递的方式传入函数体;
2) 对象或者结构体以值传递的方式从函数返回;
3) 对象或者结构体需要通过另外一个对象或者结构体进行初始化;
C++中是通过默认构造函数来完成的,C语言中是如何完成的呢?
之前老谭的书上貌似说不可以这样用,TC貌似也是不支持的!可以通过内存拷贝函数memcpy()完成。。
但是如上代码完成1) 2)3)三个功能内部是如何实现的呢?效率如何?
89增加这个功能有什么特别意义么? |