--- title: C localeTitle: C --- # Olá Mundo! - Seu primeiro programa em C ## Tirando o máximo proveito deste curso Certifique-se de que você está confortável com todos os conceitos nesta parte do guia antes de prosseguir. Obtendo seu primeiro programa em execução é importante porque permitirá que você siga junto com os exemplos, o que é outra coisa boa para fazer prática faz perfeito! Conceitos que podem ser confusos terão uma anotação vinculada a um apêndice. Se você não entende um conceito, consulte o apêndice para mais informações. ## Objetivo do curso Os objetivos deste curso são ensinar a linguagem C para iniciantes. Idealmente, alguém que nunca tocou uma linguagem de computador antes poderá conhecer C seguindo estes guias. No entanto, eles ainda serão úteis para programadores mais experientes, incluindo um resumo no final de cada artigo. Embora o conteúdo ensinado aqui seja transferível para microcontroladores como o Arduino, não é o foco deste guia. ## O que é C? C é uma linguagem de programação de uso geral inventada por Dennis Ritchie entre 1969 e 1973 no Bell Labs. Desde então, ele tem sido usado para criar coisas como o Linux Kernel, que permite que o software interaja com o hardware em sistemas operacionais baseados em Linux. Ele pode fazer isso e outras operações de baixo nível, porque ele foi projetado para ficar muito próximo do código da máquina e, ao mesmo tempo, ser legível por humanos. Por isso, fornece acesso direto à memória e ao hardware do computador. Isso torna muito útil em aplicativos de hardware e robótica, onde é importante ter acesso a esses recursos rapidamente. C, como outras linguagens de baixo nível, requer compilação. O processo de compilação pega o código C que pode ser lido por uma pessoa e transforma-o em código que pode ser lido e executado por um computador. A compilação requer um compilador, que pode ser usado a partir da linha de comando ou pode ser usado em um IDE. Se você preferir usar a linha de comando, considere o `gcc` . Ele pode ser encontrado por padrão nos sistemas operacionais GNU + Linux e no Mac, e é fácil de obter no Windows. Para iniciantes, no entanto, ter um IDE pode ser mais confortável. Considere CodeBlocks ou Xcode se você estiver interessado em poder escrever e executar código a partir de uma GUI. Agora que você tem esse histórico, vamos começar com nosso programa 'Hello, World'. "Hello, World" é uma forma tradicional de começar com uma linguagem: mostra que podemos escrever código e executá-lo, por isso é um bom começo! ## Olá mundo em C ```C #include int main(void) { printf("hello, world\n"); return 0; } ``` Vamos quebrar este programa passo a passo. Primeiro é o `#include` : ```C #include // This is called preprocessor directives ``` Esta é uma instrução para o compilador para localizar e incluir um conjunto de arquivos de cabeçalho. Os arquivos de cabeçalho contêm código adicional que podemos usar. Nesse caso, o compilador foi instruído a incluir `` , que contém todos os tipos de funções úteis, como `printf()` . Também podemos escrever como `#include"stdio.h"` . Vamos entrar em detalhes sobre quais funções são posteriores, mas por enquanto lembre-se que uma função é uma coleção de código que podemos usar. ```C int main(void) { } ``` Este código declara a função principal. A função principal é especial - sempre será chamada e é sempre a parte 'principal' do seu programa. Se isso não estiver no seu programa, seu programa não poderá ser executado e não será compilado. Iniciar a declaração de função com `int` significa que essa função fornecerá um valor `int` quando for executada através de seu código - é a saída desta função. `int` é o tipo de dados 'inteiro' e inteiros são números inteiros como -3, 0 ou 18. Então sabemos que esse código será executado e, quando estiver pronto, nos retornará um número inteiro. Por convenção, esse inteiro é 0. Em seguida é o `main` . `main` é o nome dessa função e, como você aprendeu anteriormente, é importante ter uma função `main` , pois o programa não funcionará sem ela. `main` é seguido por `(void)` . Isso diz ao compilador que essa função não recebe nenhum parâmetro, o que significa que não possui entrada. Isso pode não fazer muito sentido agora, mas você aprenderá mais sobre isso quando começar a ler sobre funções em C mais tarde. Por enquanto, lembre-se que o `main` é necessário para o seu programa C, ele não está recebendo nenhuma entrada e está dando um número como sua saída. Finalmente, há os colchetes: `{` e `}` . Estes marcam o começo e o fim da função. A chave aberta ( `{` ) marca o início e a chave fechada ( `}` ) marca o fim. Tudo entre os dois está dentro da função. Agora vamos ver a carne do programa: ```C printf("Hello, World!\n"); ``` `printf` é uma função que pega texto e imprime na tela. O parêntese indica quais informações queremos que a função `printf` tire e imprima na tela. Mostramos que esta é uma string que queremos imprimir, colocando-a entre aspas "assim". Observe o \\ n encontrado dentro das aspas - isso diz à função `printf` para imprimir uma nova linha. Uma nova linha é impressa quando você aperta enter no seu teclado. Sem explicitamente dizer ao C para imprimir uma nova linha, tudo será impresso na mesma linha. Finalmente, a instrução printf () é concluída com um ponto e vírgula ( `;` ). Isso mostra que esta linha de código acabou. Sem ele, o compilador não sabe onde uma linha termina e outra começa, por isso é importante incluir. O programa termina com uma declaração de retorno: ```C return 0; ``` Isso mostra que a função acabou e que deve terminar dando um valor de 0 para qualquer coisa que tenha sido executada. Quando você está executando código no seu computador, isso é bom porque permite que outros programas interajam com o seu de uma maneira melhor. Como antes, esta linha termina com um ponto e vírgula para indicar que a linha foi concluída. ## Compilação e Corrida Você pode salvar o seu arquivo hello world como o que você quiser, mas ele precisa terminar com a extensão de arquivo .c. Neste exemplo, o arquivo foi nomeado "helloworld.c", porque esse é um nome claro com uma extensão de arquivo .c. Existem muitas maneiras de compilar e obter o código C em execução no seu computador. Aqui estão alguns: #### Compilação e execução a partir da linha de comando com o GCC Se você estiver usando Mac ou GNU + Linux, você já tem o GCC instalado. Para executar seu programa em C, ele precisa ser compilado. Para compilar a partir da linha de comando usando o gcc, execute o seguinte comando no seu terminal: ```shell gcc -o helloworld ./helloworld.c ``` `gcc` é o compilador Gnu C, e ele irá compilar o arquivo C que fornecemos em um programa que pode ser executado pelo seu computador. `-o helloworld` diz ao GCC que você quer que o arquivo compilado (a saída do gcc) seja um arquivo chamado "helloworld". A parte final do comando diz ao GCC onde o arquivo C a ser compilado pode ser encontrado. Se você não estiver confortável com a navegação na linha de comando, essa etapa será difícil, mas tudo bem. É fácil aprender e voltar ou você pode tentar em uma IDE. Depois de compilá-lo, execute o seguinte comando: ```shell ./helloworld ``` Se tudo correu bem, você deve ver `Hello, World!` impresso na tela. #### Compilação e execução de C com CodeBlocks [Codeblocks pode ser baixado aqui.](http://www.codeblocks.org/downloads/26) Crie um novo programa com `file` -> `new` -> `file` , selecione C / C ++ source, selecione C como seu idioma e copie o texto helloworld.c que você leu anteriormente. Compile e execute o código com `Build` -> `Build and Run` . #### Compilação e execução de C com o Xcode [O Xcode pode ser baixado aqui.](https://developer.apple.com/xcode/) #### Compilação e executando C com Dev-C ++ [Dev-C ++ pode ser baixado aqui.](https://sourceforge.net/projects/orwelldevcpp/) Crie um novo programa com `file` -> `new` -> `Source File` , então copie o texto helloworld.c que você leu anteriormente e salve o arquivo com `file` -> `save As` como hello.c, e Compile e execute o código com `Execute` -> `Compile & Run` . # Antes de você ir ... ## Uma revisão * C é lingua franca de linguagens de programação. * C foi usado para reimplementar o sistema operacional Unix. * C é útil porque é pequeno, rápido e tem acesso a operações de baixo nível. Por causa disso, ele é muito usado em robótica, sistemas operacionais e eletrônicos de consumo, mas não em coisas como páginas da web. * O programa de AC tem algumas partes críticas: * A instrução include, que informa ao compilador C onde encontrar código adicional que será usado no programa. * A função principal, que é onde o código será executado primeiro e é necessário para compilar. * Coisas dentro dessa função principal que serão executadas, incluindo uma declaração de retorno que fecha o programa e dá um valor ao programa que o chamou. * C precisa ser compilado para ser executado. * C pode ser usado para acessar endereços de hardware específicos e para executar o puncionamento de tipos para corresponder aos requisitos de interface impostos externamente, com uma demanda de tempo de execução baixa nos recursos do sistema.