Declaração de Funções Old School

por Fabio A. Mazzarino

Pra uma linguagem de programação que nasceu em 1973 e rapidamente ganhou popularidade, falar de Old School significa voltar 40 anos atrás. Em mais de quatro décadas até a linguagem C evoluiu bastante, mas ainda assim existe muita coisa, principalmente em códigos antigos, ou em documentação antiga, que utiliza a sintaxe antiga de declaração de funções.

A maioria dos compiladores ainda aceita a sintaxe antiga de declaração, apesar de ser considerada obsoleta. Mas atenção, essa declaração não é aceita em código C++.

Vamos a um exemplo:

void* memset (ptr, value, num)
void* ptr;
int value;
size_t num;
{
    for (unsigned char *p = (unsigned char*)ptr; num--; p++)
        *p = (unsigned char)value;
    return ptr;
}

Na declaração clássica os nomes das variáveis são listadas entre parênteses porém sem seus respectivos tipos. Em seguida, fora do parênteses, mas antes da abertura do escopo, são declaradas os parâmetros juntamente com o tipo. Depois que abrimos o escopo da função tudo continua normalmente.

Na prática não se utiliza mais essa sintaxe. Talvez alguns programadores da década de 70 que teimam em utilizar a sintaxe clássica. Mas tem muita coisa pronta, e principalmente documentação e manuais em ambientes Unix, tal qual como AIX, por exemplo. Afora isso eu nunca mais vi.