I. O que é C
C é uma linguagem de programação de propósito geral, criada em 1972 para o sistema operacional UNIX. O próprio sistema e a maioria dos softwares complementares foram escritos em C. Apesar disso, ela não é vinculada apenas ao UNIX e funciona em qualquer computador ou sistema. Costuma ser chamada de «linguagem de programação de sistemas», pois serve para desenvolver sistemas operacionais e compiladores, além de todos os tipos de software comum.
C surgiu a partir da linguagem B (derivada do BCPL). Tanto B quanto BCPL são linguagens sem tipos de dados, enquanto o C traz um sistema completo de tipos.
II. Características centrais
1) Diversidade de tipos de dados
Comparada à sua antecessora B, a linguagem C conta com uma vasta gama de tipos de dados.
Tipos básicos: caracteres, números inteiros de vários tamanhos, números de ponto flutuante (decimais)
Tipos derivados: ponteiros, vetores, estruturas e uniões. Os ponteiros permitem manipular endereços de memória diretamente, independente da arquitetura do hardware.
Regras: Operadores se combinam para formar expressões; qualquer expressão como atribuição ou chamada de função pode ser uma instrução completa por si só.
2) Controle completo do fluxo do programa
Suporta ramificações condicionais (if-else), seleção múltipla (switch), dois tipos de laços (while/for verificam a condição antes da execução, do verifica depois da execução), saída antecipada de laços (break) e outros recursos. Essas instruções de fluxo permitem criar lógicas de programa complexas e variadas.
3) Funções
Uma função é um conjunto empacotado de passos de operação fixos. Você define um nome para ela, e sempre que chamar esse nome, todo o processo é executado automaticamente.
Um exemplo prático do dia a dia:
Suponha que «assar pão» seja uma função.
Não precisa repetir todo o procedimento toda vez que quiser pão: sovar massa → moldar → assar no forno.
Basta chamar «assar pão» e todos os passos rodam sozinhos: essa ação se chama chamar uma função.
Se quiser assar pão duas vezes, basta chamar a função «assar pão» duas vezes.
Transferindo esse conceito para o C:
A função
printfagrupa toda a lógica para exibir texto na tela. Você só precisa escreverprintf("Olá"), sem controlar manualmente cada detalhe da tela do computador.
Funções podem retornar todos os tipos de dados: inteiros, estruturas, ponteiros e mais.
Suporta chamadas recursivas (uma função chamar a si mesma). Variáveis locais dentro de uma função são recriadas a cada chamada; não é possível definir funções aninhadas dentro de outras funções, mas variáveis podem ser declaradas dentro de blocos de código separados.
O código-fonte de um projeto pode ser dividido em vários arquivos .c e compilados separadamente.
As