在定义参数的时候用指针也可以,如果狂用结构体的话会造成结构体泛滥而且不灵活.
不过呢~其实还有种返回结构体的方法
以这个为例:
struct complex
{
double re; /*real part*/
double im; /*imag part*/
};
struct complex fun(............)
{
struct complex ans;
//........................
return ans;
}
这个是星星写的.调用的时候是这样调用
struct complex complex_number = fun(....);
这样写只能返回一种结构体.如果想实现函数的返回值重构,那么可以这样规范你的函数定义
void * fun(............)
{
struct complex ans;
//........................
return ans;
}
这样调用的时候
struct complex complex_number = (strutct complex)fun(....);
如果你重构了函数fun是返回一个字符串,这个时候就可以
char * string_number = (char*)fun(....);
那我怎么知道到底是返回char*还是struct complex呢?这个就需要在参数中进行声明
struct complex complex_number = (strutct complex)fun( argType );
char * string_number = (char*)fun( argType );
当然,如果要完全实现一个函数的重构就必须定义一个变参数的函数了
void * fun( int argCount, ... )
{
struct complex ans;
//........................
return ans;
}
呵呵,以上是我胡言乱语,请勿较真