4
前方宣言がどのように相互作用するかを把握しようとしています。 typedefされた構造体をとる関数を宣言すると、以前に宣言された(実際には定義されていない)構造体をパラメータとして受け入れるようコンパイラーを得る方法がありますか?C - 構造体と関数の前方宣言
私が働いて持っているコード:
typedef struct{
int year;
char make[STR_SIZE];
char model[STR_SIZE];
char color[STR_SIZE];
float engineSize;
}automobileType;
void printCarDeets(automobileType *);
私は私が行うことがしたいこと:
struct automobileType;
void printCarDeets(automobileType *);
//Defining both the struct (with typedef) and the function later
私は本当に基本的な何かが足りないか、どのように理解していないのどちらかだように私は感じますコンパイラは構造体の前方宣言を処理します。
が、その場合、あなたはおそらくしたくありませんそれにもかかわらず、typedef、C11を繰り返す。ヘッダーは問題ありません。 Cファイルに 'struct automobileType {...};'を定義してください。 –
@JonathanLeffler .hファイルでそれを行うのとは別に、私は最初にそれを動作させたので、私はそれを行うべきですか? –
@ ZacTaylor上記の答えは、宣言と定義が別々のファイルにあるかどうかに関係なく機能します。主な問題は、匿名の構造体を宣言することができないことです。 – dbush