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

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

int mult(struct Numbers *n) 

但是,struct Numbers,定义为

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

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

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

 struct Numbers; int mult(struct Numbers *n); 

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

 struct Numbers; int mult(struct Numbers *n) { } struct Numbers { int a; int b; int c; }; 

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