Hallo,
ich habe ein Problem ein Struct in mehreren files zu verwenden.
momentan habe ich folgendes
global.h
1 | typedef struct {
|
2 | bool a : 1;
|
3 | bool b : 1;
|
4 | bool c : 1;
|
5 | uint8 reserved : 5;
|
6 | }COMMON;
|
7 |
|
8 | typedef struct {
|
9 | COMMON common;
|
10 | uint8 currentSession;
|
11 | uint8 nextSession;
|
12 | }INTERFACE;
|
13 |
|
14 | static GLOBAL_INTERFACE global_interface
|
file1.c
1 | INTERFACE* interface = &global_interface;
|
2 | interface->common.a = 1;
|
3 | sint16 Data= (((interface->common.a) + (interface->common.b < 1)) & 0x03);
|
file2.c
1 | INTERFACE* interface = &global_interface;
|
2 | interface->common.b = 1;
|
3 | sint16 Data= (((interface->common.a) + (interface->common.b < 1)) & 0x03);
|
Allerdings werden auf zwei verschiedene Structs geschrieben. Beim
Debuggen sehe ich auch, dass es auf verschiedenen Adressen liegt. Auch
der wert Data bleibt 1, wenn ich beide funktionen aufgerufen habe.
Was muss ich genau machen, damit ich in unterschiedlichen Dateien meine
Daten auf dem selben struct schreiben kann?