PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Parameterübergabe in C



stargaizer
11-01-2008, 21:59
Hallo,

irgendwie habe ich einen Blackout :( Ich habe in meinem C Code eine Funktion die in etwa so aussieht(wichtig is der Pointer):

int doTransfer(char length, char* data);
Die Verarbeitung der Daten in doTransfer() is eigentlich nicht das Problem. Nur der Aufruf. Ich suche nach einer eleganten und lesbaren Möglichkeit die zu transferierenden Daten zu übergeben. Es handelt sich hierbei meist um konstante Hexwerte oder Daten aus anderen Variablen. Mein Problem ist, dass mir folgendes nich gefällt:

char transferData[] = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35};
...
doTransfer(sizeof(transferData), transferData);
Ich würde eigentlich bevorzugen, dass ich die Hexwerte direkt beim Aufruf der doTransfer() übergebe. Quasi die Array/Pointerdefinition im Funktionsaufruf drin habe.

Geht sowas überhaupt in C? Oder sehe ich das nur zu eng, da ich in der Regel fast nur ausschließlich in Java code? Und Java Poeple sich schon immer mit "selber um den Speicher kümmern" ihre Probleme hatten ;)

Danke
stargaizer

undefined
12-01-2008, 08:08
Hier wird dies gut erklärt. Siehe Wertübergabe an Funktionen (call-by-value)
http://www.galileocomputing.de/openbook/c_von_a_bis_z/c_011_001.htm
und speziel für deinen Fall:
http://www.galileocomputing.de/openbook/c_von_a_bis_z/c_013_010.htm#Xxx999328

Pingu
14-01-2008, 06:49
Meintest Du dies? http://209.85.135.104/search?q=cache:6gGIYBGbFHMJ:https://www.ca.uni-hannover.de/fileadmin/buecher/inhalt/C_skript.pdf+C+function+variable+parameter&hl=de&ct=clnk&cd=2&gl=de&client=firefox-a