A palavra-chave static antes da declaração de uma variável global torna a variável privada no módulo em que está sendo declarada. Em outras palavras, a variável é invisível para outros módulos.
A palavra-chave static tem o mesmo efeito sobre as declarações de funções: a função torna-se privada no módulo e invisível para outros módulos.
Por exemplo, num módulo que implementa o algoritmo Mergesort, é razoável que a função auxiliar intercala não possa ser vista de fora do módulo:
static void intercala (int p, int q, int r, int v[]) { . . . } void mergesort (int p, int r, int v[]) { if (p < r-1) { int q = (p + r); mergesort (p, q, v); mergesort (q, r, v); intercala (p, q, r, v); } }