Pointer als Argument in Funktionsdeklaration angeben

Gast #6152298
Lesenswert?

Hallo

Kennt jemand die korrekte Schreibweise für die Funktionsdeklaration, 
wenn eines der Argument ein Zeiger ist?

In diesem Beispiel hab ich die Varianten, die mir in den Sinn gekommen 
sind angegeben:
1
void dieFunktion(int arg1, int *argP);    //Variante 1
2
void dieFunktion(int , int );             //Variante 2
3
void dieFunktion(int , *int );            //Variante 3
4
void dieFunktion(int , int* );            //Variante 4
5

6
void main(void )
7
{
8
    int Zahl1;
9
    int Zahl2;
10

11

12
    dieFunktion(Zahl1, Zahl2);
13
    while(1);
14
}
15

16
dieFunktion(int arg1, int *argP)
17
{
18
   Zahl2 = Zahl1;
19

20
}

Welche der 4 Varianten werden vom MPLAB Compiler zuverlässig 
interpretiert?

Besten Dank und schönes Wochenende!
Gast #6152386
Lesenswert?

Vielen Dank

Beim Aufruf habe ich das & vergessen, weil in meinem eigentlichen code 
dort ein Array und nicht ein simpler int steht, wodurch das & in der 
Parameterübergabe ja enthalten ist.

Gruss
Michi
(Firma: egal) #6152594
Lesenswert?

Michi schrieb:
> Beim Aufruf habe ich das & vergessen, weil in meinem eigentlichen code
> dort ein Array und nicht ein simpler int steht

Ich glaub du schmeißt hier noch einiges durcheinander.
Schau dir mal "call-by-value" und "call-by-reference" genauer an:
https://de.wikibooks.org/wiki/C%2B%2B-Programmierung/_Weitere_Grundelemente/_Prozeduren_und_Funktionen#call-by-value

Und Achtung, hier gibt es Unterschiede je nachdem ob man einen reinen 
C-Compiler verwendet oder einen für C++ (der ja in der Regel genauso gut 
C-Style-Code verarbeitet).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren