パーツ構造の宣言(たとえば) を 2 つの異なるファイルに含めた場合、一方のファイルのパーツ変数は、もう一方のファイルのパーツ変数と同じ型になりますか?
質問する
151 次
1 に答える
3
はい、宣言が構造的に同じであれば、それらは同じ型です。そうでない場合、呼び出し元と呼び出し先が別のファイルにあるため、構造体パラメーターを使用するライブラリ関数を呼び出すことはできません。
宣言は文字通り同じである必要はありません。同じ型を同じ順序で指定する限り、メンバー名と構造体型の名前などは一致する必要はありません。したがって、次のようにします。
file1.c:
struct {
int i;
char c;
} var1;
そしてfile2.cで:
typedef struct newstruct {
int v1;
char v2;
} newstruct_t;
newstruct_t var2;
thenvar1
とvar2
は同じ型です。
詳細はもう少し複雑ですが、これは有用な概算です。
ただし、このようなプログラミングは混乱を招きます。ファイル間で型を共有する場合は、宣言をヘッダー ファイルに配置し、#include
それを使用するすべてのソース ファイルに配置する必要があります。
于 2013-09-02T18:53:41.420 に答える