有没有办法将没有显式命名类型的结构作为参数传递给函数?

时间:2016-03-29 21:21:16

标签: c function struct arguments

假设我们有以下结构定义如下:

struct
{
    int  month;
    int  day;
    int  year;
} date;

我可以以某种方式实现一个函数,该函数将与日期相同类型的结构作为参数,即使它没有明确命名吗?换句话说,我能够对randomFunction (date)之类的随机函数进行函数调用吗?在这种情况下,该函数的标题如何显示,因为date的结构类型没有名称?

提前致谢:)

2 个答案:

答案 0 :(得分:1)

您可以定义日期的结构类型,并使用date

在程序中调用它
typedef struct date{
    int  month;
    int  day;
    int  year;
} date;

答案 1 :(得分:0)

有间接的方法(例如,您可以传递指向该类型对象的void*指针,然后以某种方式访问该结构中的结构成员功能)。

使用, ...声明的可变参数函数不起作用,因为在调用va_arg()时仍需要指定类型的名称。

不,没有直接的方法可以做到这一点。函数参数必须是某种命名类型。坦率地说,没有任何间接的方式值得做。

如果要将某个struct类型的参数传递给函数,只需为该类型命名即可。