Ich bin kürzlich auf eine neue Verwendung von static
Stichwort gekommen. Was bedeutet static
hier?static keyword in array [] Klammern
void fun(int some_array[static 7]);
EDIT: kann jemand ein Beispiel geben, wo dies nützlich sein kann?
Ich bin kürzlich auf eine neue Verwendung von static
Stichwort gekommen. Was bedeutet static
hier?static keyword in array [] Klammern
void fun(int some_array[static 7]);
EDIT: kann jemand ein Beispiel geben, wo dies nützlich sein kann?
Der Standard sagt in 6.7.6.3:
Eine Erklärung eines Parameters als ‚‘ Array vom Typ ‚‘ ist auf ‚‘ qualifizierte Zeiger auf Typ ‚eingestellt werden‘, wobei der Typ-Qualifikation (falls vorhanden) sind diejenigen, die innerhalb der [und] der Array-Typ-Ableitung angegeben sind. Wenn das Schlüsselwort statisch erscheint auch in der [und] des Array-Typ Ableitung, dann für jeden Aufruf der Funktion, der Wert der tatsächliches Argument entspricht, wird der Zugang zu dem ersten Elemente eines Arrays bereitzustellen mit zuzumin mindestens so viele Elemente wie durch den Größenausdruck angegeben.
Dies ist eine Funktion, die in C99 eingeführt wurde. Also da hast du es: some_array
muss mindestens 7 Elemente lang sein.
Wie sie sagen, kann es keine neuen Standard ohne eine neue Nutzung für das static
Schlüsselwort sein.
"Wie sie sagen, kann es keinen neuen Standard geben ohne eine neue Verwendung für das Schlüsselwort' static' ", ich weiß das Gefühl, Bruder. – paulotorrens
entnommen von http://hamberg.no/erlend/posts/2013-02-18-static-array-indices.html? –