Este material foi produzido a partir de diversas fontes, entre elas as transparências do prof. Lucas Ferrari e o tutorial online Learn C Programming, dentre outros.
Estas páginas (2018-2) foram adaptadas a partir das aulas do Prof. Carlos Maziero.
A linguagem C foi criada por Dennis Ritchie em 1972 para reescrever de forma portável o sistema operacional UNIX, que antes era escrito em assembly. Sua estrutura e seu nome provêm de uma linguagem anterior B, que era uma simplificação da linguagem de programação BCPL, escrita em 1966.
Em 1978 foi publicado o livro The C Programming Language por Brian Kernighan e Dennis Ritchie, consagrando a linguagem no padrão chamado K&R. Durante muitos anos esse livro foi considerado como a especificação da linguagem.
Em 1989 o padrão C foi oficializado pelo ANSI (American National Standards Institute) através do padrão ANSI X3.159-1989, conhecido hoje como ANSI C, C89 ou C90. É provavelmente a versão mais usada da linguagem ainda hoje.
Em 1999 a ISO (International Standards Organization) publicou um novo padrão da linguagem chamado ISO/IEC 9899:1999 e conhecido como C99. Em 2011 foi publicado o padrão mais recente, chamado C11.
Apesar de sua idade, C continua sendo uma das linguagens mais utilizadas (TIOBE INdex), Ranking IEEE. A linguagem C inspirou a criação de muitas outras linguagens de programação mais recentes, como C++, Java, C#, JavaScript, Perl, PHP, Lua, etc.
Algumas das principais características da linguagem C são:
Este material foi preparado para que você leia estas notas e execute os exercícios enquanto lê o material. Para isso, abra em sua tela, além do navegador, um terminal (Shell) e um editor de texto. O leiaute da tela deve ser algo parecido com o mostrado abaixo.
O código a seguir traz um ''Hello World'' em C:
/* Este é um exemplo simples de código em C,
que escreve a string 'Hello, world!' na
saída padrão do terminal. */
#include <stdio.h> // inclusão de definições
int main (void) // função principal
{
printf ("Hello, world!\n") ; // função de entrada/saída
return (0) ; // retorno (fim) da função
}
Algumas observações importantes sobre esse código:
A linha ''#include'' é um comando de preprocessador; ele indica que na fase inicial da compilação deve ser lido (incluído) o arquivo ''stdio.h'', que contém as definições das funções de entrada/saída da biblioteca padrão C (como a função ''printf''). Estudaremos o preprocessador adiante.
Todo programa em C inicia sua execução pela função ''main'', que sempre deve ser definida.
Os blocos de código são delimitados por chaves (''{'' e ''}'').
Por ser uma função, ''main'' deve retornar um valor (linha ''return'').
Comentários são iniciados pelos caracteres ''//'' ou delimitados pelos caracteres ''/*'' e ''*/''.
A endentação não é obrigatória, mas recomendável para melhor compreensão do código.
Para poder executar o código acima, ele deve ser salvo em um arquivo chamado de ''hello.c'', compilado e executado com os comandos:
home:~> gcc -Wall hello.c -o hello
home:~> ./hello
Hello, world!
home:~>
Um programa em C é composto das seguintes partes:
Mais um exemplo simples, para concluir:
/*
Calcula a soma e a média de dois inteiros,
escrevendo o resultado na saída padrão.
*/
#include <stdio.h>
int main (void)
{
int a, b, soma ;
float media ;
a = 10 ;
b = 43 ;
soma = a + b ;
media = soma / 2.0 ;
printf ("A soma de %d e %d vale %d\n", a, b, soma) ;
printf ("A media de %d e %d vale %f\n", a, b, media) ;
return (0) ;
}
Procure comentar o código com generosidade, para facilitar sua compreensão. Hoje você lembra do que seu programa faz; em três semanas, os comentários serão ajuda preciosa.