C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, de alto nível, padronizada pela ISO, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi originalmente escrito em Assembly).
C é uma das linguagens de programação mais populares e existem poucas arquiteturas para as quais não existem compiladores para C. C tem influenciado muitas outras linguagens de programação, mais notavelmente C++, que originalmente começou como uma extensão para C.
O desenvolvimento inicial de C ocorreu no AT&T Bell Labs entre 1969 e 1973. Não se sabe se o nome "C" foi dado à linguagem porque muitas de suas características derivaram da linguagem B e C é a letra conseguinte no alfabeto, ou porque "C" é a segunda letra do nome da linguagem BCPL, da qual derivou-se a linguagem B.
C foi originalmente desenvolvido para a implementação do sistema Unix (originalmente escrito em PDP-7 Assembly, por Dennis Ritchie e Ken Thompson). Em 1973, com a adição do tipo
struct
, C tornou-se poderoso o bastante para a maioria das partes do núcleo do Unix, serem reescritas em C. Este foi um dos primeiros sistemas que foram implementados em uma linguagem que não o Assembly, sendo exemplos anteriores os sistemas: Multics (escrito em PL/I) e TRIPOS (escrito em BCPL). SegundoRitchie, o período mais criativo ocorreu em 1972.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.
Outros codigos
int main()
{
printf("Olá, Mundo!\n");
}
Apesar do programa acima correr corretamente, atualmente origina algumas mensagens de aviso quando compilado com 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)
{
printf("Olá, Mundo!\n");
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 de C, pois é a função que é inicialmente executada ou 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(int argc, char ** argv)
int main(int argc, char * argv[])
A linha seguinte "chama", ou executa uma função chamada
printf
; o arquivo incluído, stdio.h
, contém a informação que descreve a forma como a função printf
deve ser chamada. Nesta chamada, é passado à função printf
um único argumento, a linha de texto constante "Olá, Mundo!\n". A função printf
retorna um valor, um int
, mas como não é usado ela é descartada 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();
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 = {"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();
return 0;
0 comentários:
Postar um comentário