• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

[C] Structs in Funktionen auslagern

Hammurapi

Macoun
Registriert
17.07.09
Beiträge
123
Hi

ich würde gerne mehrere structs in meinem C Programm in eine Funktion auslagern und per Funktionsaufruf in die int main() holen. Dabei will ich verschiedene Variablen (int, char) im struct abspeichern. Geht das? Was ich probiere, ich krieg immer irgendwelche Fehler.

Dies sind die structs:
Code:
	struct {						
		int v1; 
		char v2[4]; 
		char v3[4]; 
	} struct1 ;
	 v1 = 1;
	 strcpy(struct1.v2, "Bsp\0");
	 strcpy(struct1.v3, "Xsh\0");

	struct {						
		int v1; 
		char v2[4]; 
		char v3[4]; 
	} struct2 ;
	 v1 = 1;
	 strcpy(struct2.v2, "Bsp\0");
	 strcpy(struct2.v3, "Xsh\0");

Grüße!
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Was soll das bedeuten?
Eine Kerneigenschaft der prozeduralen Programmierung ist, dass Datentypen und Funktionen getrennt sind.
Natürlich kannst Du aber einen Struct-Typ deklarieren und diesen z.B. zum Datenaustausch zwischen Funktionen verwenden.

ANSI-C ist nun nicht meine Sprache, aber wenn ich mich richtig erinnere, definierst Du Typen mit „typedef“.
Es gibt natürlich keinen Sinn, den Typ nur in der Definition einer lokalen Variablen implizit zu definieren – es sei denn, der Typ wird nur lokal benötigt.
 

ImperatoR

Roter Astrachan
Registriert
02.12.06
Beiträge
6.261
Was willst du überhaupt machen? Ein struct ist sehr gut in den Header-Dateien aufgehoben.
 

Hammurapi

Macoun
Registriert
17.07.09
Beiträge
123
Ich habe in meinem Programm an die 100 verschiedener structs. Dadurch wird der Code unübersichtlich und der struct soll weg aus der main(). Das mit dem Header werde ich mal abchecken, danke!

Dazu schreibe ich eine eigene Header-Datei, und include per #header.h, korrekt?
 

ImperatoR

Roter Astrachan
Registriert
02.12.06
Beiträge
6.261
#include "header.h";

Und idealerweise packst du nicht alles in die Main, sondern Teilst dein Programm sinnvoll in mehrere C-Dateien + H-Dateien auf.
 

Hammurapi

Macoun
Registriert
17.07.09
Beiträge
123
Oh, ja. Das include hab ich vergessen. Beim Blick auf den Code wäre mir das aber wohl aufgefallen;) Jetzt muss ich erstmal den code sinnvoll zerlegen glaube ich... So dass in der main() nur noch Funktionsaufrufe stehen. Das wird ein Spasso_O
 

Pii

Rheinischer Krummstiel
Registriert
25.06.07
Beiträge
383
Kein großer Akt: Refactor benutzen.