Professional Documents
Culture Documents
ndice
[esconder]
1 Histria
1.1 C K&R
1.2 ANSI C e ISO C
1.3 C99
1.4 C11
2 Viso geral
2.1 Tipos de dados
3 Relaes com C++
4 Exemplos
4.1 Programa Ol Mundo
4.2 Matemtica
4.3 Estruturas de dados
5 Baixo-nvel
6 Ferramentas de programao
7 Ver tambm
8 Referncias
9 Ligaes externas
Ken Thompson e Dennis Ritchie (da esquerda para direita), os criadores das linguagens B e C,
respectivamente.
O desenvolvimento inicial de C ocorreu no AT&T Bell Labs entre 1969 e 1973.5 de acordo
com Ritchie, o perodo mais criativo ocorreu em 1972. A linguagem foi chamada "C",
porque suas caractersticas foram obtidas a partir de uma linguagem anteriormente
chamado de " B", que de acordo com a Ken Thompson era verso reduzida da linguagem
de programao BCPL.6
A verso original PDP-11 do sistema Unix foi desenvolvido em assembly. Em1973, com a
adio dos tipos struct , a linguagem C tornou-se poderosa o suficiente para que a maior
parte do kernel do Unix fosse reescrito em C. Este foi um dos primeiros ncleos de
sistemas operacionais implementadas em uma linguagem diferente da
linguagem Assembly. Em 1977, foram feitas novas mudanas por Ritchie e Stephen C.
Johnson para facilitar a portabilidade do sistema operacional Unix. O Portable C
Compiler de Johnson serviu de base para vrias implementaes de C em novas
plataformas.7
C.
Adio de vrios tipos de dados novos, incluindo o long long int (para minimizar
problemas na transio de 32-bits para 64-bits), um tipo de dado boolean explicito
(chamado _Bool) e um tipo complex que representa nmeros complexos
nmero de ponto flutuante como sendo um nmero inteiro ou um tipo de ponteiro como
sendo outro. Para estes casos, a linguagem C fornece a capacidade de "moldagem"
(tambm denominado "converso de tipo" ou casting), uma operao que, caso seja
possvel, fora a converso de um objecto de um tipo para outro. Apesar de ser por vezes
necessrio, o uso de converses de tipo sacrifica alguma segurana oferecida pelo sistema
de tipos.
int
O tipo de dado int (inteiro) serve para armazenar valores numricos inteiros. Existem
vrios tipos de inteiros, cada um de um tamanho diferente (dependendo do sistema
operacional e/ou arquitetura do processador):
A palavra-chave bool , igual usada em C++, em C99 necessita que se inclua o ficheirocabealho <stdbool.h> (_Bool est sempre disponvel). Padres anteriores de C no
definiam um tipo booleano e vrios (e incompatveis) mtodos foram usados para simular
um tipo booleano
Algumas caractersticas originalmente desenvolvidas em C++ tambm apareceram em C.
Entre elas encontram-se:
prottipos de funo (com declarao de tipos de parmetros) e remoo do "int"
implcito
a palavra-chave inline
tipagem mais forte
#include <stdio.h>
typedef struct Pessoa
{
char nome[64]; // vetor de 64 chars para o nome
unsigned short int idade;
char rg[13];
} Pessoa;
int main()
{
Pessoa exemplo = {"Felipe", 16, "00.000.000-00"}; // declarao da
varivel "exemplo"
printf("Nome: %s\n", exemplo.nome);
printf("Idade: %hu\n", exemplo.idade);
printf("RG: %s\n", exemplo.rg);
getchar();
return 0;
}