Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Konstanten an Funktion übergeben Kategorie: Programmierung (von André H. - 5.06.2006 18:35)
Als Antwort auf Re: Konstanten an Funktion übergeben von Holger - 27.05.2006 21:09
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0, OSOPT V3.1
Hallo Holger,

> danke so funktioniert es.
> Ich dachte aber es geht eleganter als die Konstanten nochmals umzukopieren.

Konstanten-Arrays kann man nicht als Array Funktionen übergeben.
Das liegt daran, daÃ? bei einer Funktion, die als Parameter ein Array erwartet,
von diesem lediglich die Start-Adresse im RAM übgeben wird.

Wenn Du bei einer Funktion verschiedene Konstanten-Arrays dynamisch "verarbeiten",
willst, gibt es aber noch einen kleinen Trick, damit Du nicht umkopieren muÃ?t:

const array0[]= 1, 2, 3, 4, 5;
const array1[]= 45, 87, 545, 452, 4553;
const array2[]= 0, 5415, 2046, 276, 785;
const array3[]= 13, 187, 658, 139, 978;
const Offset[]=0,5,10,15;

function tuwas(byte parameter, ..., byte Array)//Array=0-3
{int index, wert;
 ...
 ...
 wert=array0[index+Offset[Array]]
 ...
 ...
}

Hier werden alle 4 Arrays wie eines behandelt.
Das geht, da alle definierten Arrays in der Reihenfolge im Speicher stehen,
wie im Modul angegeben.
Die Arrays können auch verschiedene längen haben.
Das muÃ? dann hier nur im Konstantenarray beachtet werden.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Konstanten an Funktion übergeben (von Holger - 6.06.2006 18:04)
    Re: Konstanten an Funktion übergeben (von André H. - 11.06.2006 12:54)
        Re: Konstanten an Funktion übergeben (von Holger - 11.06.2006 14:39)