Funktionsaufruf

#5014598
Lesenswert?

Kann man machen. Der Compiler wird nicht meckern. Folgende drei 
Deklarationen sind ebenbürtig und korrekt:
1
extern void GetData(uint8 arg[1])
2

3
extern void GetData(uint8 arg[])
4

5
extern void GetData(uint8* arg)

Die erste Variante mit Angabe einer festen Größe ist jedoch unüblich und 
in gewisser Hinsicht auch für kritisch. Denn der Aufrufer der Funktion 
wird in den Glauben versetzt, die Funktion ist auf ein einelementiges 
Array beschränkt.
Gast #5026519
Lesenswert?

Kritisch ja, aber meiner Meinung in die andere Richtung. Man könnte 
denken, der Compiler überwacht die Arraygröße. Dem ist die Zahl in 
eckigen Klammern jedoch Mumpe.

Wenn man schreibt :
extern void GetData(uint8 arg[6]);

Kann man trotzdem Arrays der Länge 3 angedreht bekommen. Mit den 
üblichen lustigen Folgen nach dem Schreiben auf Element 5...

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