c语言中函数名与struct可以重名 #include <stdio.h> struct foo { int a; int b; }; void foo(struct foo *f) { printf("%d, %d", f->a, f->b); } int main() { struct foo f; f.a = 1; f.b = 2; foo(&f); return 0; } 需要注意的是在这样的情况下使用定义struct的时候必须 struct foo A;