Você está na página 1de 9

A linguagem C n�o teve um sucesso imediato ap�s a sua cria��o e o seu uso ficou

restrito a alguns laborat�rios,[9] mas em 1978 Brian Kernighan e Dennis Ritchie


lan�am o livro The C Programming Language.[10] que serviu de tutorial e mudou a
hist�ria da programa��o em C. De fato essa primeira vers�o da linguagem � conhecida
como "C Kernigham e Ritchie" ou apenas "C K&R".[11]
C K&R
A linguagem C n�o teve um sucesso imediato ap�s a sua cria��o e o seu uso ficou
restrito a alguns laborat�rios,[9] mas em 1978 Brian Kernighan e Dennis Ritchie
lan�am o livro The C Programming Language.[10] que serviu de tutorial e mudou a
hist�ria da programa��o em C. De fato essa primeira vers�o da linguagem � conhecida
como "C Kernigham e Ritchie" ou apenas "C K&R".[11]
C K&R
A linguagem C n�o teve um sucesso imediato ap�s a sua cria��o e o seu uso ficou
restrito a alguns laborat�rios,[9] mas em 1978 Brian Kernighan e Dennis Ritchie
lan�am o livro The C Programming Language.[10] que serviu de tutorial e mudou a
hist�ria da programa��o em C. De fato essa primeira vers�o da linguagem � conhecida
como "C Kernigham e Ritchie" ou apenas "C K&R".[11]
C K&R
A linguagem C n�o teve um sucesso imediato ap�s a sua cria��o e o seu uso ficou
restrito a alguns laborat�rios,[9] mas em 1978 Brian Kernighan e Dennis Ritchie
lan�am o livro The C Programming Language.[10] que serviu de tutorial e mudou a
hist�ria da programa��o em C. De fato essa primeira vers�o da linguagem � conhecida
como "C Kernigham e Ritchie" ou apenas "C K&R".[11]

Esse livro, conhecido pelos programadores de C como "K&R", serviu durante muitos
anos como uma especifica��o informal da linguagem. A vers�o da linguagem C que ele
descreve � usualmente referida como "K&R C". A segunda edi��o do livro cobriu o
padr�o posterior, o ANSI C. K&R C introduziu as seguintes caracter�sticas na
linguagem:

Biblioteca padr�o de E/S


Tipo de dados struct
Tipo de dados long int
Tipo de dados unsigned int
O operador =+ foi alterado para +=, e =- para -= (o analisador l�xico do compilador
fazia confus�o entre i =+ 10 e i = +10. O mesmo acontecia com =-)
K&R C � frequentemente considerado a parte mais b�sica da linguagem, cujo suporte
deve ser assegurado por um compilador C. Durante muitos anos, mesmo ap�s a
introdu��o do padr�o ANSI C, K&R C foi considerado o "menor denominador comum", em
que programadores de C se apoiavam quando uma portabilidade m�xima era desejada, j�
que nem todos os compiladores eram actualizados o bastante para suportar o padr�o
ANSI C.

Nos anos que se seguiram � publica��o do K&R C, algumas caracter�sticas "n�o-


oficiais" foram adicionadas � linguagem, suportadas por compiladores da AT&T e de
outros vendedores. Estas inclu�am:

Fun��es void e tipos de dados void *


Fun��es que retornam tipos struct ou union
Campos de nome struct num espa�o de nome separado para cada tipo struct
Atribui��o a tipos de dados struct
Qualificadores const para criar um objecto s� de leitura
Biblioteca padr�o, que incorpora grande parte da funcionalidade implementada por
v�rios vendedores
Enumera��es
C�lculos de ponto-flutuante em precis�o simples (no K&R C, os c�lculos
intermedi�rios eram feitos sempre em double, porque era mais eficiente na m�quina
onde a primeira implementa��o do C foi feita)
Question book-4.svg
Esta p�gina ou sec��o cita fontes fi�veis e independentes, mas que n�o cobrem todo
o conte�do, o que compromete a verificabilidade (desde agosto de 2013). Por favor,
insira mais refer�ncias no texto. Material sem fontes poder� ser removido.
�Encontre fontes: Google (not�cias, livros e acad�mico)
ANSI C e ISO C
Durante os finais da d�cada de 1970, a linguagem C come�ou a substituir a linguagem
BASIC como a linguagem de programa��o de microcomputadores mais usada. Durante a
d�cada de 1980, foi adaptada para uso no PC IBM, e a sua popularidade come�ou a
aumentar significativamente. Ao mesmo tempo, Bjarne Stroustrup, juntamente com
outros nos laborat�rios Bell, come�ou a trabalhar num projecto onde se adicionavam
extras para programa��o orientada por objectos � linguagem C. A linguagem que eles
produziram, chamada C++, � nos dias de hoje a linguagem de programa��o de
aplica��es mais comum no sistema operativo Windows da companhia Microsoft. A
linguagem C permanece a mais popular no mundo Unix.

Em 1983, o instituto norte-americano de padr�es (ANSI) formou um comit�, X3J11,


para estabelecer uma especifica��o do padr�o da linguagem C. Ap�s um processo longo
e �rduo, o padr�o foi completo em 1989 e ratificado como ANSI X3.159-1989
"Programming Language C". Esta vers�o da linguagem � frequentemente referida como
ANSI C. Em 1990, o padr�o ANSI C, ap�s sofrer umas modifica��es menores, foi
adotado pela Organiza��o Internacional para Padroniza��o (ISO) como ISO/IEC
9899:1990, tamb�m conhecido como C89 ou C90. Um dos objetivos do processo de
padroniza��o ANSI C foi o de produzir um sobreconjunto do K&R C, incorporando
muitas das caracter�sticas n�o-oficiais subsequentemente introduzidas. Entretanto,
muitos programas tinham sido escritos e que n�o compilavam em certas plataformas,
ou com um certo compilador, devido ao uso de bibliotecas de fun��es n�o-padr�o e ao
fato de alguns compiladores n�o aderirem ao ANSI C.

C99
Ap�s o processo da padroniza��o ANSI, as especifica��es da linguagem C permaneceram
relativamente est�ticas por algum tempo, enquanto a linguagem C++ continuou a
evoluir. (em 1995, a Normative Amendment 1 criou uma vers�o nova da linguagem C mas
esta vers�o raramente � tida em conta.) Contudo, o padr�o foi submetido a uma
revis�o nos finais da d�cada de 1990, levando � publica��o da norma ISO 9899:1999
em 1999. Este padr�o � geralmente referido como "C99" e foi adoptado como um padr�o
ANSI em mar�o de 2000. As novas caracter�sticas do C99 incluem:

Fun��es em linha
Remo��o de restri��es sobre a localiza��o da declara��o de vari�veis (como em C++)
Adi��o de v�rios tipos de dados novos, incluindo o long long int (para minimizar
problemas na transi��o de 32-bits para 64-bits), um tipo de dados boolean explicito
(chamado _Bool) e um tipo complex que representa n�meros complexos
Vetores de dados de comprimento vari�vel (o vetor pode ter um tamanho diferente a
cada execu��o de uma fun��o, mas n�o cresce depois de criado)
Suporte oficial para coment�rios de uma linha iniciados por //, emprestados da
linguagem C++
V�rias fun��es de biblioteca novas, tais como snprintf()
V�rios ficheiros-cabe�alho novos, tais como stdint.h
O interesse em suportar as caracter�sticas novas de C99 parece depender muito das
entidades. Apesar do GCC e v�rios outros compiladores suportarem grande parte das
novas caracter�sticas do C99, os compiladores mantidos pela Microsoft e pela
Borland suportam pouqu�ssimos recursos do C99, e estas duas companhias n�o parecem
estar muito interessadas em adicionar tais funcionalidades, ignorando por completo
as normas internacionais. A Microsoft parece preferir dar mais �nfase ao C++.[12]

C11
Em 2007, se iniciou o trabalho em antecipa��o de outra revis�o do padr�o de C,
informalmente chamada de C11 ou C1X. O comit� dos padr�es de C adotou regras para
limitar a inser��o de novos recursos que n�o tenham ainda sido testados por
implementa��es existentes.[13]

Em dezembro de 2011 foi publicada a vers�o est�vel da especifica��o, como ISO/IEC


9899:2011.

Vis�o geral
C � uma linguagem imperativa e procedural para implementa��o de sistemas. Seus
pontos de design foram para ele ser compilado, fornecendo acesso irrestrito a
mem�ria e baixos requerimentos do hardware. Tamb�m foi desenvolvido para ser uma
linguagem de alto n�vel, para maior reaproveitamento do c�digo. C foi �til para
muitas aplica��es que foram codificadas originalmente em Assembly.

Essa propriedade n�o foi acidental; a linguagem C foi criada com o objectivo
principal em mente: facilitar a cria��o de programas extensos com menos erros
recorrendo ao paradigma da programa��o procedural mas sobrecarregando menos o autor
do compilador, cujo trabalho complica-se ao ter de realizar as caracter�sticas
complexas da linguagem. Para este fim, a linguagem C possui as seguintes
caracter�sticas:

Seguran�a de tipo
Coletor de lixo (mais comum em linguagens interpretadas)
Vetores que crescem automaticamente
Classes ou objetos com comportamento (ver Orienta��o a objetos)
Clausuras
Fun��es aninhadas
Sobrecarga de operadores
Seguran�a de tipo
Coletor de lixo (mais comum em linguagens interpretadas)
Vetores que crescem automaticamente
Classes ou objetos com comportamento (ver Orienta��o a objetos)
Clausuras
Fun��es aninhadas
Sobrecarga de operadores
Seguran�a de tipo
Coletor de lixo (mais comum em linguagens interpretadas)
Vetores que crescem automaticamente
Classes ou objetos com comportamento (ver Orienta��o a objetos)
Clausuras
Fun��es aninhadas
Sobrecarga de operadores
Uma linguagem extremamente simples, com funcionalidades n�o-essenciais, tais como
fun��es matem�ticas ou manuseamento de ficheiros (arquivos), fornecida por um
conjunto de bibliotecas de rotinas padronizada
A focaliza��o no paradigma de programa��o procedural
Um sistema de tipos simples que evita v�rias opera��es que n�o fazem sentido
Uso de uma linguagem de pr�-processamento, o pr�-processador de C, para tarefas
tais como a defini��o de macros e a inclus�o de m�ltiplos ficheiros de c�digo fonte
Ponteiros d�o maior flexibilidade � linguagem
Acesso de baixo n�vel, atrav�s de inclus�es de c�digo Assembly no meio do programa
C
Par�metros que s�o sempre passados por valor para as fun��es e nunca por refer�ncia
(� poss�vel simular a passagem por refer�ncia com o uso de ponteiros)
Defini��o do alcance lexical de vari�veis
Estruturas de vari�veis, (structs), que permitem que dados relacionados sejam
combinados e manipulados como um todo
Algumas caracter�sticas �teis, que faltam em C, podem ser encontradas em outras
linguagens, que incluem:
Meta-programa��o
Apoio nativo de multithreading e comunica��o por rede
Apesar da lista de caracter�sticas �teis que C possui n�o ser longa, isso n�o tem
sido um impedimento � sua aceita��o, pois isso permite que novos compiladores de C
sejam escritos rapidamente para novas plataformas, e tamb�m permite que o
programador permane�a sempre em controle do que o programa est� a fazer. Isto � o
que por v�rias vezes permite o c�digo de C corpesar de tamb�m ser usada para
desenvolver programas de computador. � tamb�m muito usada no ensino de ci�ncia da
computa��o, mesmo n�o tendo sido projetada para estudantes e apresentando algumas
dificuldades no seu uso. Outra caracter�stica importante de C � o seu c�digo
resultante em Assembly ter funcionamento id�ntico ao c�digo fonte, que permite que
um projetista seja capaz de fazer algumas previs�es de como o software ir� se
comportar ao ser executado.

O psuem um valor reservado especial, NULL, que indica que n�o est�o a apontar para
uma morada. O uso desse valor como morada � muito �til na constru��o de v�rias
estruturas de dados, mas causa comportamento n�o-definido (possivelmente uma falha
de sistema) ao ser desreferenciado. Um ponteiro que possui o valor NULL � chamado
ponteiro nulo. Os ponteiros s�o declarados (e desreferenciados) com um *
(asterisco), portanto o tipo int* denota um ponteiro para n�mero(s) inteiro(s). A
linguagem C tamb�m fornece um tipo especial de ponteiros, o void*, que se traduz
num ponteiro que aponta para um objeto de tipo desconhecido.

A linguagem C tamb�m tem apoio em n�vel de linguagem para vetores est�ticos (de
dimens�o fixa) de tipos. As disposi��es de tipos podem parecer ter mais que uma
dimens�o apesar de serem tecnicamente disposi��es de disposi��es de tipos. Em
mem�ria, tais estruturas s�o posicionadas com as linhas uma depois da outra (a
alternativa seria armazenar os dados em colunas, usado em outras linguagens). O
acesso a disposi��es de tipos � feito atrav�s de ponteiros e aritm�tica de
ponteiros; o nome da disposi��o � tratado como se fosse um ponteiro que aponta para
o in�cio da disposi��o. Em certas aplica��es n�o � razo�vel usarem-se disposi��es
de tipos de dimens�o fixa e por isso a aloca��o din�mica de mem�ria pode ser usada
para criar disposi��es de tipos de dimens�o vari�vel.

Como a linguagem C � regularmente usada em programa��o de baixo-n�vel de sistemas,


h� casos em que � necess�rio tratar um n�mero inteiro como sendo um ponteiro, um
n�mero de ponto flutuante como sendo um n�mero inteiro ou um tipo de ponteiro como
sendo outro. Para estes casos, a linguagem C fornece a capacidade de "moldagem"
(tamb�m denominado "convers�o de tipo" ou "casting"), uma opera��o que, caso seja
poss�vel, for�a a convers�o de um objeto de um tipo para outro. Apesar de ser por
vezes necess�rio, o uso de convers�es de tipo sacrifica alguma seguran�a oferecida
pelo sistema de tipos.

int
O tipo de dado int (inteiro) serve para armazenar valores num�ricos inteiros.
Existem v�rios tipos de inteiros, cada um de um tamanho diferente (dependendo do
sistema operacional e/ou arquitetura do processador):

int, pode possuir 16 bits, 32 bits ou 64 bits


short int, deve possuir tamanho de no m�nimo 16 bits e n�o pode ser maior que int
long int, deve possuir tamanho m�nimo de 32 bits
long long int, deve possuir tamanho m�nimo de 64 bits
Todos estes tipos de inteiros podem ainda ser declarados precedidos da cl�usula
unsigned, o que faz com que s� suporte n�meros positivos. Isto faz com que, com o
mesmo tamanho, uma vari�vel suporte mais n�meros positivos do que um signed (todos
os inteiros s�o signed por omiss�o).

char
O tipo char ocupa 1 byte, e serve para armazenar caracteres ou inteiros. Isso
significa que o programa reserva um espa�o de 8 bits na mem�ria RAM ou em
registradores do processador para armazenar um valor (char de tamanho maior que 8
bits � permitido pela linguagem, mas os casos s�o raros). Com vetores do tipo char
� poss�vel criar cadeias de caracteres (strings).

float
O tipo de dado float serve para armazenar n�meros de ponto flutuante, ou seja, com
casas decimais. O padr�o mais utilizado nos �ltimos 10 anos � o IEEE 754-1985.

double
O tipo de dado double serve para armazenar n�meros de ponto flutuante de dupla
precis�o, normalmente tem o dobro do tamanho do float e portanto o dobro da
capacidade. O padr�o mais adotado tamb�m � o IEEE 754-1985.

struct
Em C podem ser usadas estruturas (chamados de registos em outras linguagens de
programa��o). As estruturas s�o grupos de vari�veis organizadas arbitr�riamente
pelo programador. Uma estrutura pode criar um novo tipo de vari�vel caso typedef
seja usado em sua declara��o.

Rela��es com C++


A linguagem de programa��o C++ foi originalmente derivada do C para suportar
programa��o orientada a objetos. � medida que as linguagens C e C++ foram evoluindo
independentemente, a divis�o entre as duas veio a aumentar. O padr�o C99 criou um
n�mero de caracter�sticas que entram em conflito. Hoje, as principais diferen�as
entre as duas linguagens s�o:

inline - em C++, fun��es em linha encontram-se no espa�o global enquanto que em C


encontram-se no espa�o local. Por outras palavras, isso significa que, em C++,
qualquer defini��o de qualquer fun��o em linha (sem ser a respeito da sobrecarga de
fun��es de C++) tem de estar em conformidade com a "regra de uma defini��o" da
linguagem C++. Mas em C, a mesma fun��o em linha pode ser definida de maneira
diferente em diferentes arquivos (ou ficheiros)
A palavra-chave bool, igual � usada em C++, em C99 necessita que se inclua o
ficheiro-cabe�alho <stdbool.h> (_Bool est� sempre dispon�vel). Padr�es anteriores
de C n�o definiam um tipo booleano e v�rios (e incompat�veis) m�todos foram usados
para simular um tipo booleano
Algumas caracter�sticas originalmente desenvolvidas em C++ tamb�m apareceram em C.
Entre elas encontram-se:

prot�tipos de fun��o (com declara��o de tipos de par�metros) e remo��o do "int"


impl�cito
coment�rios de linha, indicados por //; coment�rios de linha terminam com um
car�cter de nova-linha
a palavra-chave inline
tipagem mais forte
Exemplos
Programa Ol� Mundo
Ver artigo principal: Programa Ol� Mundo
A seguinte aplica��o foi publicada na primeira edi��o de C de K&R, e tornou-se no
programa de introdu��o padr�o da maior parte dos livros sobre C. O programa envia o
texto "Ol�, Mundo!" para a sa�da padr�o, que � normalmente o console, mas que
tamb�m pode ser um ficheiro (ou arquivo), um outro dispositivo qualquer, ou at�
mesmo um bit bucket, dependendo de como a sa�da-padr�o � mapeada na altura em que o
programa � executado.

int main(void)
{
puts("Ol�, Mundo!");
}
Apesar do programa acima correr corretamente, atualmente origina algumas mensagens
de aviso quando compilado como C ANSI. Essas mensagens podem ser eliminadas
efectuando umas pequenas altera��es no programa original:

# include <stdio.h> /* Pacotes com fun��es de entrada e sa�da */

int main(void)
{
puts("Ol�, Mundo!");
return 0; /* Retorna 0, pois `main` retorna um `int` */
}
/* Nova linha ap�s fechar a chave principal */
A primeira linha do programa � uma diretiva de pr�-processamento #include, que
causa com que o pr�-processador substitua aquela linha pela totalidade do conte�do
do arquivo qual diretiva se refere. Neste caso o arquivo padr�o stdio.h (que cont�m
prot�tipos de fun��es para trabalho com entrada e sa�da) ir� substituir a linha. Os
caracteres < e > indicam que o arquivo stdio.h encontra-se no local em que, quando
da configura��o do compilador, se definiu como padr�o para localiza��o dos
ficheiros de inclus�o (header files, geralmente com a extens�o .h).

A linha (n�o-vazia) seguinte indica que uma fun��o denominada main ser� definida. A
fun��o main tem um significado especial nos programas em C, pois � a fun��o que �
inicialmente executada (em ingl�s, entry point). Os caracteres { e } delimitam a
extens�o da fun��o. O termo int define a fun��o main como sendo uma fun��o que
retorna um n�mero inteiro. O termo void indica que a fun��o n�o aceita par�metros.
A fun��o main, normalmente aceita par�metros, que s�o passado pela linha de
comando. Os compiladores e sistemas operacionais atuais reconhecem as seguintes
declara��es de main:

int main(void);
int main(int argc, char *argv[]);
int main(int argc, char **argv);
A linha seguinte "chama", ou executa uma fun��o chamada puts; o arquivo inclu�do,
stdio.h, cont�m a informa��o que descreve a forma como a fun��o puts deve ser
chamada. Nesta chamada, � passado � fun��o puts um �nico argumento, a linha de
texto constante "Ol�, Mundo!". A fun��o puts retorna um valor, um int, mas como n�o
� usado, � descartado pelo compilador. O comando return retorna o valor 0 para o
sistema, que � interpretado pelo mesmo como que a fun��o main() foi executada e
encerrada com sucesso (sem erros). Por fim, o caracter } indica o fim da fun��o
main. Note-se que texto rodeado por /* e */ (coment�rios de texto) � ignorado pelo
compilador. Os compiladores que obedecem � norma C99 tamb�m aceitam como
coment�rios as linhas de texto que s�o precedidos por //.

Matem�tica
O seguinte c�digo realiza seis opera��es matem�ticas, adi��o, subtra��o,
multiplica��o, divis�o, exponencia��o e radicia��o, e em seguida envia os seus
respectivos resultados para a sa�da padr�o (normalmente o console).

# include <math.h> // necess�ria para pow() e sqrt()


# include <stdio.h> // necess�ria para printf() e getchar()

int main()
{
int a = 2, b = 3;

printf("%d + %d = %d\n", a, b, a + b);


printf("%d - %d = %d\n", a, b, a - b);
printf("%d x %d = %d\n", a, b, a * b);
printf("%d / %d = %0.1f\n", a, b, (float) a / b); // resultado fracion�rio
printf("%d elevado a %d = %0.1f\n", a, b, pow(a, b)); // pow(base, expoente)
printf("raiz quadrada de %d = %0.1f\n", a, sqrt(a));

getchar(); //O uso dessa fun��o � necess�ria apenas nos sistemas Windows, para
manter o terminal (Prompt de comando) aberto
return 0;
}
Estruturas de dados
No exemplo seguinte, � criada uma estrutura composta por 3 elementos de tipos
diferentes. Ap�s ser declarada uma vari�vel "x" do tipo struct "y", onde "y" � o
nome da estrutura, para se acessar os elementos usa-se a seguinte sintaxe:
x.elemento.

# include <stdio.h>

struct Pessoa
{
char nome[64]; // vetor de 64 chars para o nome
unsigned short int idade;
char rg[13];
};

int main()
{
struct Pessoa exemplo = {"Fulano", 16, "00.000.000-00"}; // declara��o da
vari�vel "exemplo"

printf("Nome: %s\n", exemplo.nome);


printf("Idade: %hu\n", exemplo.idade);
printf("RG: %s\n", exemplo.rg);

getchar(); // desnecess�rio, mas comumente utilizado em ambientes windows para


"segurar" o terminal aberto
return 0;
}
Ou, equivalente:

# 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 = {"Filipe", 16, "00.000.000-00"}; // declara��o da vari�vel
"exemplo"

printf("Nome: %s\n", exemplo.nome);


printf("Idade: %hu\n", exemplo.idade);
printf("RG: %s\n", exemplo.rg);

getchar();
return 0;
}
Ferramentas de programa��o
Bloodshed Dev-C++
IDE (Ambiente de desenvolvimento integrado), como Code::Blocks, NetBeans e
JetBrains CLion
GNU Compiler Collection
Automa��o de compila��o, como make
Ver tamb�m
Outros projetos Wikimedia tamb�m cont�m material sobre este tema:
Wikilivros Livros e manuais no Wikilivros
C++
Linguagem compilada
Linguagem de programa��o
Linguagem de programa��o de alto n�vel
Lista de linguagens de programa��o
Unix
Compilador
Refer�ncias
�Overall Options - Using the GNU Compiler Collection (GCC)�. gcc.gnu.org (em
ingl�s). Consultado em 13 de dezembro de 2017
�History of the C Programming Language� (em ingl�s). livinginternet.com.
Consultado em 23 de maio de 2010
�Programming Language Popularity� (em ingl�s). langpop.com. Consultado em 23 de
maio de 2010
�TIOBE Programming Community Index� (em ingl�s). tiobe.com. Consultado em 23 de
maio de 2010
�C � The Influence Factor of Many Popular Programming Languages� (em ingl�s).
cprogramminglanguage.com. Consultado em 23 de maio de 2010
Ritchie, Dennis M. (janeiro de 1993). �The Development of the C Language�.
Consultado em 1 de janeiro de 2008. The scheme of type composition adopted by C
owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form
that Algol's adherents would approve of.
A Brief History of C
Johnson, S. C.; Ritchie, D. M. (1978). �Portability of C Programs and the UNIX
System� (PDF). Bell System Tech. J. 57 (6): 2021�2048. Consultado em 16 de dezembro
de 2012
�Entrevista com Dennis Ritchie, Bjarne Stroustrup e James Gosling� (em (em
ingl�s)). Java Report e C++ Report. Julho de 2000. Consultado em 3 de junho de 2015
Kernighan, Brian W.; Ritchie, Dennis M (1978). The C Programming Language (em
ingl�s). Upper Saddle River, New Jersey: Prentice hall. 228 p�ginas. ISBN 0-13-
110163-3
Rosangle Hickson. Aprenda a programa em C, C++ e C# 2a ed. [S.l.]: Campus. p. 3.
ISBN 978-85-352-1479-6
�Microsoft d� mais �nfase ao C++� (em ingl�s). connect.microsoft.com. Consultado
em 23 de maio de 2010
�Grupo de trabalho do ISO C� (em ingl�s). open-std.org. Consultado em 23 de maio
de 2010
Liga��es externas
C Progressivo (em portugu�s)
[[1] Aprendendo a programar -- Programando na Linguagem C -- Jaime Evaristo,
Universidade Federal de Alagoas] (em portugu�s)
P�gina oficial do ISO C Working Group (em ingl�s)
C no DMOZ
[Expandir]
v � e
Linguagens de programa��o
[Expandir]
v � e
Lista de Normas da Comiss�o Eletrot�cnica Internacional
Categorias: Linguagem de programa��o CLinguagens de programa��o procedurais
Menu de navega��o
N�o autenticadoDiscuss�oContribui��esCriar uma
contaEntrarArtigoDiscuss�oLerEditarEditar c�digo-fonteVer hist�ricoBusca

Pesquisar na Wikip�dia
P�gina principal
Conte�do destacado
Eventos atuais
Esplanada
P�gina aleat�ria
Portais
Informar um erro
Loja da Wikip�dia
Colabora��o
Boas-vindas
Ajuda
P�gina de testes
Portal comunit�rio
Mudan�as recentes
Manuten��o
Criar p�gina
P�ginas novas
Contato
Donativos
Imprimir/exportar
Criar um livro
Descarregar como PDF
Vers�o para impress�o
Noutros projetos
Wikimedia Commons
Wikilivros
Ferramentas
P�ginas afluentes
Altera��es relacionadas
Carregar ficheiro
P�ginas especiais
Hiperliga��o permanente
Informa��es da p�gina
Elemento Wikidata
Citar esta p�gina

Noutros idiomas
Deutsch
English
Espa�ol
??????
Italiano
???
???
Latina
??
99 outras
Editar hiperliga��es
Esta p�gina foi editada pela �ltima vez �(s) 22h34min de 21 de abril de 2018.
Este texto � disponibilizado nos termos da licen�a Creative Commons - Atribui��o -
Compartilha Igual 3.0 N�o Adaptada (CC BY-SA 3.0); pode estar sujeito a condi��es
adicionais. Para mais detalhes, consulte as condi��es de uso.
Pol�tica de privacidadeSobre a Wikip�diaAvisos geraisProgramadoresDeclara��o sobre
cookiesVers�o m�velWikimedia Foundation Powered by MediaWiki