0

パーツ構造の宣言(たとえば) を 2 つの異なるファイルに含めた場合、一方のファイルのパーツ変数は、もう一方のファイルのパーツ変数と同じ型になりますか?

4

1 に答える 1

3

はい、宣言が構造的に同じであれば、それらは同じ型です。そうでない場合、呼び出し元と呼び出し先が別のファイルにあるため、構造体パラメーターを使用するライブラリ関数を呼び出すことはできません。

宣言は文字通り同じである必要はありません。同じ型を同じ順序で指定する限り、メンバー名と構造体型の名前などは一致する必要はありません。したがって、次のようにします。

file1.c:

struct {
    int i;
    char c;
} var1;

そしてfile2.cで:

typedef struct newstruct {
    int v1;
    char v2;
} newstruct_t;
newstruct_t var2;

thenvar1var2は同じ型です。

詳細はもう少し複雑ですが、これは有用な概算です。

ただし、このようなプログラミングは混乱を招きます。ファイル間で型を共有する場合は、宣言をヘッダー ファイルに配置し、#includeそれを使用するすべてのソース ファイルに配置する必要があります。

于 2013-09-02T18:53:41.420 に答える