我已经看到了以下两种在C API中声明不透明types的风格。 使用另一种风格有没有明显的优势? 选项1 // foo.h typedef struct foo * fooRef; void doStuff(fooRef f); // foo.c struct foo { int x; int y; }; 选项2 // foo.h typedef struct _foo foo; void doStuff(foo *f); // foo.c struct _foo { int x; int y; };