我想为函数编写函数原型,其参数是指向struct的指针。
int mult(struct Numbers *n)
但是,struct Numbers,定义为
struct Numbers {
int a;
int b;
int c;
};
尚未定义。我该如何为mult编写合适的原型?
答案 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;
};
请注意,编译器无法确定结构的内存大小,因此您无法按值传递它。