ExpertiDict

C · Avançado · Português · Técnico

static em parâmetro de array

/ˈstæ.tɪk ẽj pa.ˈɾɐ̃.me.tɾu dʒi a.ˈhej/substantivo

Forma do C99, como void f(int v[static 10]), em que o programador promete que o ponteiro recebido aponta para ao menos 10 elementos válidos, permitindo ao compilador otimizar e avisar.

Onde usar

É rara, mas aparece em bibliotecas de baixo nível e em contratos de API. Alguns compiladores avisam quando se passa um array menor ou NULL para um parâmetro assim.

Em código

double media(const double v[static 3]) {
  return (v[0] + v[1] + v[2]) / 3;
}

Exemplos

Usa static no parâmetro de array para exigir pelo menos três elementos.

O compilador avisou porque o array passado tem menos elementos que o static prometido.

Cuidado

Achar que o compilador sempre verifica: a promessa é do programador, e passar um array menor é comportamento indefinido.

Sinônimos

array com tamanho mínimo

Veja também

Todos os termos de C