具有结构参数的C函数原型

时间:2013-08-04 23:08:13

标签: c

我想为函数编写函数原型,其参数是指向struct的指针。

int mult(struct Numbers *n)

但是,struct Numbers,定义为

struct Numbers {
    int a;
    int b;
    int c;
};

尚未定义。我该如何为mult编写合适的原型?

2 个答案:

答案 0 :(得分:5)

在函数声明之前,只需将struct Numbers声明为不完整类型:

struct Numbers;

int mult(struct Numbers *n);

答案 1 :(得分:4)

您必须转发结构声明,告诉编译器将定义具有该名称的结构:

struct Numbers;

int mult(struct Numbers *n) {

}

struct Numbers {
    int a;
    int b;
    int c;
};

请注意,编译器无法确定结构的内存大小,因此您无法按值传递它。