我有两个c文件,foo.c的功能和test_foo.c,它们测试foo.c的功能.
有没有办法BAR在不使用头文件的情况下访问test_foo.c中foo.c中定义的struct typedef ?到目前为止,我能够避免使用啊文件,因此整个程序将由foo.c组成.谢谢.
foo.c
typedef struct BAR_{...} bar;
BAR *bar_new(...) {..}
test_foo.c
extern BAR *bar_new(...)
Run Code Online (Sandbox Code Playgroud)
error: expected declaration specifiers or ‘...’ before ‘BAR’
答案是有一个,你应该使用头文件.您可以将结构的定义复制typedef struct BAR_{...} bar;到其中test_foo.c,它将起作用.但这会导致重复.每个有效的解决方案都必须使编译器的实现可用于编译器test_foo.c.如果在这种情况下适合您,您也可以使用ADT.
| 归档时间: |
|
| 查看次数: |
27167 次 |
| 最近记录: |