-3

我通过在每个头文件中声明它来在我的项目的所有文件中使用结构的实例。

我的问题是:有没有更简单/自动的方法呢?

这是一个例子:

好吧,我有一个名为:my_project 的项目,其中包含:main.c func1.c func2.c func3.c。在主文件上,我读取 txt 文件并将数据保存在 struct vector 上:

for(i=0;i<MAX;i++){ 
  fscanf(f,"%s",&s[i].nome); 
  fscanf(f,"%d",&s[i].id); 
  fscanf(f,"%d",&s[i].quantidade); 
  fscanf(f,"%d",&s[i].lim_min); 
  fscanf(f,"%f",&s[i].consumo_med); 
} 

我想要的是在 func2.c 和 func3.c 中使用结构向量

ehst是最好的方法吗?

4

2 回答 2

2

您可以在标头中定义 struct vector,可能称为 vector.h,然后在每个源文件中包含 vector.h(或在每个源文件中已包含的标头中)。这是一种常见的方法。这样做的好处是定义结构向量的文本只出现在一个地方,vector.h(这避免了在一个源文件而不是另一个源文件中编辑定义时发生的错误)。它本质上是唯一的方法,因为 C 不提供任何方法来导入除 #include 之外的定义。

于 2012-06-15T03:24:13.663 回答
1

我假设您的funcXYZ.c文件中有函数声明,您包含在main.c? 您可能只是对函数进行编码以将适当的结构作为参数,然后将这些函数与您在main.

如果出于某种原因,您有相反的情况,即您包含main.c在 中funcXYZ.c,那么您可以使用extern.

于 2012-06-15T01:35:06.977 回答