2011-11-10 21 views
0

Cでハフマン符号化アルゴリズムを実行していて、ここで問題が発生しました。複数の.hファイルでtypedef構造体を使用

typedef struct no{ 
    int qtd; 
    char c; 
    struct no* esq; 
    struct no* dir; 
}no; 

だから、私のarv_huffman.hはheap.h、含み、そのtypedefのとtypedef no** arvHuffman

私の他の.hを持っている」:

私は、この構造体を使用する二つの異なる.hファイルを持っていますarv_huffman.h "と使用します。typedef no* heap

どちらのファイルも他の実装はありません。私がコンパイルしようとすると、私が取得メッセージは次のとおりです。

arv_huffman.h:11: error: redefinition of ‘struct no’ 
arv_huffman.h:16: error: conflicting types for ‘no’ 
arv_huffman.h:16: note: previous declaration of ‘no’ was here 
arv_huffman.h:18: error: conflicting types for ‘arvoreHuff’ 
arv_huffman.h:18: note: previous declaration of ‘arvoreHuff’ was here 

行が間違って何が起こっている次のコード

arv_huffman.h:11: "typedef struct no{" 
arv_huffman.h:16: "}no;" 
arv_huffman.h:18: "typedef no** arvoreHuff;" 

を持っていると私はそれをどのように修正すればよいです。

答えて

5

あなたは警備員が、それは二度同じ定義を見ている、存在しない、とあなたは構造体を再定義していると考えているので、あなたの.h

header guardsを入れるのを忘れていました。

+0

魔法のように働いてくれてありがとう! – Adriano

関連する問題