2016-09-13 7 views
0

私は3つのヘッダと、3つの機能を呼び出すのmain.cからのコードの次のサンプルコードスニペットを持っている - 私の不明な理由のために警告を与えている:、基本的に警告:暗黙の関数宣言 - 問題を含む順序?

#include "header1.h" 
 
#include "header2.h" 
 
#include "header3.h" 
 

 
int main() 
 
{ 
 
    function1(); // this is from header1 
 
    function2(); // this is from header2 
 
    function3(); // this is from header 3 
 
}

gccを使用した後に、関数2 & 3が警告を生成します。しかし、このような何かにコードを再配置した後:

#include "header3.h" 
 
#include "header1.h" 
 
#include "header2.h" 
 
    
 

 
int main() 
 
{ 
 
    function1(); // this is from header1 
 
    function2(); // this is from header2 
 
    function3(); // this is from header 3 
 
}

それから、私に1 & 2は、暗黙的機能の警告を与えます。私はここで間違って何をしていますか?あなたは、ファイル1は次のようになります含める

+1

を変更し、[MCVE]を提供してください。ヘッダーファイルの正確な内容を確認する必要があります。あなたはおそらくそれらの1つ/すべてにエラーがあります(同じインクルードガードを使用して私の推測です)。 – kaylum

+1

このようなエラーは、ヘッダーが依存ヘッダーを正しく含んでいないか、あいまいなマクロ/条件付きコンパイルを使用している場合に発生します。 [ask]を参照し、[mcve]を提供してください。ここ – Olaf

+0

@kaylumは、ヘッダファイルの1、残りのフォロースーツ '#ifndefの__REZON_FUNCTIONS__ の#define __REZON_FUNCTIONS__ のボイドはfunction1()です。 #endif ' – rezon

答えて

1

:他の2つのファイルがマクロ名と類似しているべきである

#ifndef __REZON_FUNCTIONS1__ 
#define __REZON_FUNCTIONS1__ 

#endif 

はそれに応じて

関連する問題