C · Avançado · Português · Técnico
static em parâmetro de array
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