0

私はこのcppファイルを持っており、ここにたくさんのCファイルが含まれています。

main.cpp

extern "C" {
#include "types.h"
#include "file1.h"
}
...

types.h

#IFNDEF TYPES_H
#DEFINE TYPES_H
typedef unsigned short int char16;
...
#ENDIF // TYPES_H

file1.h

#include "file2.h"
...

file2.h

...
char16* testCode();
...

何らかの理由で、コンパイラは char16 が宣言されていないというエラーを表示します。インクルードが CPP ファイルから C ファイルに継承されない理由は何ですか? どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

2

types.h を file2.h に含める必要があります。あなたはそれをしていないようです。

ところで、投稿されたコードは私のマシンでエラーなしでコンパイルされますが、"#include "types.h"main.cpp でコメントするとエラーが発生します。

于 2012-05-31T14:33:58.870 に答える