我正在研究一个带有主文件vector.c,vector.h的相当简单的C程序,但我遇到了这些问题:
任何人都可以回答这些问题,还是指向我能阅读的资源?
答案 0 :(得分:2)
如果在两个c文件中都需要它提供的声明,我在哪里放置.h文件的包含?
将include
语句放在需要标题定义的每个C文件中,在您的情况下,在 main.c 和 vector.c < / em>的。使用include guards总是一个好主意,如果编译器抱怨已经定义了符号或多次定义了符号,则需要使用{{3}}。
我在哪里放置所有3个文件中都需要typedef?
取决于:
typedefs
对于您的矢量API是必需的或特定的,请将它们放在 vector.h 中。typedefs
不是你的矢量界面的一部分,那么它们可能属于第3个头文件,例如 common.h 之类的东西,它也可能包含在项目中的每个其他文件中。答案 1 :(得分:2)
非常自然:
typedef
是声明,所以它们非常适合放入头文件。如果您的标题包含标题,有时您可能需要针对多重包含的保护,但对于您不需要的情况。请记住,每个C文件都可以自行编译。当然,切勿将#include
与C文件一起使用。