Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: String-Parameter an Funktion übergeben Kategorie: Programmierung C (von PeterS - 26.09.2008 15:07)
Als Antwort auf String-Parameter an Funktion übergeben von josef w. - 25.09.2008 18:35


Ein String ist ein char array. Daher muÃ? es so gehen:


void main(void) {
     char str[10];
     str= "test";
     newline(str, 0x1, 0x1, 0x1, 0x0);
}
 
 
 void newline(char name[], int enabled, int keep_alarm, int flanke, int resistor) {
   ...
 }
 

Man mu� das über die Zuweisung von str machen, da "test" im Flash liegt, aber alle Funktionen
Argumente über das RAM bekommen.

Demnächst wird man

newline(str, 0x1, 0x1, 0x1, 0x0);

schreiben können. Das dient aber nur zur Bequemlichkeit. In Wirklichkeit wird dann der Compiler eine
anonyme temporäre Variable generieren, dorthin den String aus dem Flash laden und dann die Funktion
aufrufen.

Gruss Peter
> Hallo,
>
> ich würde gerne einer Funktion einen String übergeben.
>
> void main(void) {
>     newline("test", 0x1, 0x1, 0x1, 0x0);
> }
>
>
> void newline(char name, int enabled, int keep_alarm, int flanke, int resistor) {
>   ...
> }
>
>
> Der Error des Kompilers:
> E:DatenSystemDesktopNeuer Ordnermain.cc(1,13): Semantic Error -
> calling function "newline" (arg:1 - 'char') with string constant generates error
> E:DatenSystemDesktopNeuer Ordnermain.cc(1,5): Semantic Error -
> not enough arguments for call of function newline
>
> Kann mir dabei jemand sagen warum?
>
>
> Grü�e
> Josef W.


    Antwort schreiben


Antworten: