Ich habe 3 DateienStruktur in einer anderen Quelle verwendet, um Dateien
//--------------reg_des.h---------------
struct reg
{
unsigned int i : 4;
unsigned int j : 4;
};
extern struct reg;
//--------------reg_des.c---------------
struct reg xyz_reg = {.i = 2,.j = 1};
//--------------main.c---------------
#include "reg_des.c"
void display_onmodule(struct reg xyz_reg_1)
int main()
{
display_onmodule(xyz_reg);
}
void display_onmodule(struct reg xyz_reg_1)
{
.....
}
Hier habe ich eine Struktur in einer Header-Datei und initialisieren Variable Strukturtyp in einer anderen Quelldatei deklariert. Eigentlich möchte ich wissen, ist es richtig, eine Struktur zu deklarieren, die von mehreren Quelldateien verwendet werden kann?
'extern struct reg;' bedeutet nichts. Um ** eine Struktur ** zu definieren, benötigen Sie nur die Definition, wie Sie sie in der Kopfzeile gemacht haben. Um eine Instanz einer solchen Struktur zu deklarieren, benötigen Sie die Deklaration, d. H. Einschließlich der Kopfzeile. Um auf die Instantiierung "xyz_reg" der Struktur "reg" zuzugreifen, müssen Sie sie in der Header-Datei als "extern struct reg xyz_reg;" definieren. –
Um auf die Instantiierung 'xyz_reg' der Struktur' reg' in verschiedenen Einheiten (Dateien) zuzugreifen, müssen Sie sie in der Header-Datei als 'extern struct reg xyz_reg;' definieren und den Header in jede Quelle einfügen. –
@Frankie_C Außer, er sollte das nicht tun, weil es ein schreckliches Programmdesign ist. – Lundin