2012-06-15 64 views
-3

我通過在每個頭文件中聲明其使用結構的一個實例,在我的項目中的所有文件。使用上的所有文件相同的結構從項目

我的問題是:是否有這樣做的更簡單/自動的方法?

那麼這裏有一個例子:

好,我有一個名爲項目:MY_PROJECT 包含:main.c中func1.c func2.c func3.c。 在主文件我讀txt文件,並保存在結構向量數據:

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是最好的方式做它?

+0

你必須添加更多關於你在做什麼的細節。 – sarnold

+0

我的編輯是否說出你想說的話? –

+0

好吧,我有一個名爲my_project的項目,其中包含:main.c func1.c func2.c func3.c。 上主文件I讀取txt文件,並保存在結構矢量數據: 爲(I = 0; I DmitryK

回答

2

你可以在頭,也許叫vector.h定義結構向量,然後包括你的每一個源文件的vector.h(或已經包含在每個源文件的頭部)。這是一個常用的方法。這有一個好處,即定義結構向量的文本只出現在一個地方,即vector.h中(避免了在一個源文件中編輯定義而不是另一個源文件時發生的錯誤)。它基本上是唯一的方法,因爲C沒有提供任何方式來導入#include以外的定義。

1

我假設你在funcXYZ.c文件中有功能聲明,你在main.c中包含了這些文件?你可能只是編寫你的函數來把一個合適的結構作爲參數,然後用你在main中創建的結構體來使用這些函數。

如果無論出於何種原因,您已經採取了相反的行動,即您的main.c位於funcXYZ.c,那麼您可以使用extern

相關問題