structs



  • Moinsen,

    gibt es innerhalb einer struct eine möglichkeit in C einzelne elemente auswählen zu können?

    z.B. hab ich zwei structs, die sehr ähnlich aufgebaut sind

    struct {
      int a
      int b
      char c
      int d
      char e
    };
    

    alle besitzen die variablen a, b, und e - und nur die zweite struct besitzt z.B. noch c und d dazu:

    gibt es eine möglichkeit trotzdem nur eine struct zu schreiben oder muss ich zwei verschiedene structs anlegen?

    lisa



  • du könntest sowas machen

    struct a
    {
     int a;
     char b;
     long d;
    }
    
    struct b
    {
      struct a a;
      short b;
      float c; 
    }
    

    aber besser zwei unabhängige structs, wenn beide nix miteinander zu tun haben.
    🙂



  • gehen würde auch sowas:

    struct mit
    {
    	int a;
    	int b;
    	char c;
    	int d;
    	char e;
    };
    
    struct ohne
    {
    	int a;
    	int b;
    	int d;
    };
    
    union mit_ohne
    {
    	struct mit alles;
    	struct ohne weniger;
    };
    
    struct a
    {
    	union mit_ohne daten;
    	int mit_oder_ohne;//0 für ohne, 1 für mit c und d...irgendwieso
    };
    

    über a ist dann alles erreichbar...z.b. so:

    struct a test;
    	test.mit_oder_ohne=1;
    	if(test.mit_oder_ohne) strcpy(&test.daten.alles.c,"b");
    

    die struct a ist nur, damit du dir irgendwo merken kannst, ob du mit "mit" oder mit "ohne" arbeitest...sollte auch über die union direkt laufen, kann aber u.U. zu fehlern führen.

    mfg Flo


Anmelden zum Antworten