Função Main em C
Nesta aula vamos começar a estudar o nosso primeiro trecho de código em C.
Vamos conhecer a função ‘main’, entender passo a passo o que é que a função main faz e por que ela é tão importante.
A função main, ela começa com a seguinte linha, olha só, um cerquilha (#), include e, entre os sinais de menor e maior, nós temos aqui o ‘stdio.h’.
Essa é a primeira linha no nosso trecho de código para a função main.
O que está acontecendo aqui?
Vamos entender isso parte a parte.
Bom, essa palavrinha aqui a gente consegue identificar, a gente consegue imaginar o significado dela, realmente significa inclua, incluir; só que inclui o quê?
E aí vamos olhar este outro trecho aqui ‘stdio.h’, o que significa isso aqui?
Olha só, o ponto h (.h) significa que é um arquivo de funções, ou um arquivo de cabeçalhos; e não se preocupe agora muito com esses conceitos, porque ao longo do seu estudo de programação isso aqui vai ficando mais claro, conforme você vai utilizando e vai aprendendo novos conceitos, ok?!?.
Por enquanto, entenda que todo arquivo que termina com ponto h, ele é um arquivo de cabeçalho, ele é um arquivo de funções, que possui um código que alguém já desenvolveu.
Quando você começa a programar um computador, você não começa literalmente do zero, porque se fosse do zero, você teria que programar escrevendo zeros e uns, que é o binário, a linguagem de máquina.
Então você começa a programação a partir de algo que alguém já fez, que alguém já desenvolveu.
Então, já existe uma série de funções prontas em C que alguém já desenvolveu, e aqui, ao fazer o include desse arquivo aqui, nós estamos incluindo tudo o que existe nesse arquivo no nosso arquivo, no nosso código, e aí a gente pode utilizar isso aqui.
Esse “io”, o que significa esse “io”?
É a abreviação da língua inglesa.
Olha só,o input e o output e o que significa isso aqui?
A entrada e saída.
Entrada, entrada de quê?
Entrada de dados e a saída?
saída de dados.
O que significa isso aqui?
Imagine que apareceu para você a mensagem no computador: Digite sua data de aniversário, digite sua data de nascimento.
Isso é uma entrada de dados, uma informação, um dado está entrando no computador para ser processado.
E aí imagine que apareceu na tela uma mensagem dizendo cadastro realizado com sucesso.
Isso é uma informação de saída, por que saída?
O computador realizou algum processamento e imprimiu essa mensagem na tela para que o usuário veja, por isso que é saída, alguém que está fora, no computador, vai receber, vai visualizar, vai ler essa mensagem.
Então, todas as funções de entrada e saída de dados estão dentro dessa biblioteca, dentro desse arquivo aqui.
A biblioteca ‘stdio.h’ possui funções de entrada e saída de dados.
Entenda a biblioteca como um pacote, um pacotinho fechado, que já possui uma série de código em C prontos para você utilizar.
Então, basicamente, é isso que essa linha aqui está
dizendo: inclua no meu código tudo que existe aqui dentro de stdio.h Já já nós vamos utilizar uma função que está definida aqui dentro.
Na sequência, vamos então passar para a nossa próxima linha de código.
O que vem a seguir?
Aqui, agora, perceba que eu já tenho uma estrutura um pouquinho maior int, main, eu abri e fechei parênteses, abri uma chave, e eu estou fechando essa chave aqui.
Esse trecho aqui delimita a nossa função main, e essa função, ela é extremamente importante.
O main, se nós formos traduzir literalmente do inglês para o português, o main significa principal; e por que essa função é tão importante a ponto do nome dela ser principal.
A função main todo o programa precisa ter.
Quando a gente compila e executa o nosso programa, o computador vai procurar uma função chamada main, chamada principal; é por ela que o seu programa inicia.
Então, se não existe a função main no seu programa, o computador não vai compilar e não vai executar o seu código.
E aí têm mais alguns detalhes aqui.
Olha só, esse int, por que eu tenho aqui ‘int main’.
Esse int, basicamente, é o tipo de retorno, conforme você vai avançando no estudo você vai entender a diferença entre função e procedimento.
Função, ela sempre retornam um valor, e é isso que significa esse int aqui, é o tipo que será retornado.
Ah, mas eu não quero retornar nada, pode ser trocado por ‘void’, não tem nenhum problema.
E, na sessão seguinte desta aula, você vai entender a diferença entre o int e o void.
Por enquanto, o que você precisa entender é: se tiver um retorno, você vai colocar um int, que vai ser o tipo de retorno.
Se não tiver retorno, você vai usar a palavrinha reservada void.
Esse void significa vazio, significa que não tem um retorno.
Dando continuidade, agora, nós vamos utilizar algo que vem da nossa biblioteca stdio.h Olha só, ‘printf’ eu abri um par de parênteses, aspas duplas, Hello World, fechei as aspas duplas, ------------------------------------------------ fechei o parêntese, ponto e vírgula.
Perceba que, escrever código é uma tarefa extremamente detalhista, sabe por quê?
Se eu virar para você e falar assim: “Olha, ontem nós foi jogar futebol’.
O português está errado, mas você consegue entender a mensagem que eu estou tentando transmitir.
Agora, se a gente fizer algo parecido aqui no nosso código, se eu não colocar esse ponto e vírgula, se eu não colocar uma dessas aspas, se eu não abrir parênteses, vai dar erro na hora de compilar, porque o computador não vai entender.
Para o computador entender precisa estar cem por cento correto.
Ele não tem essa habilidade que nós temos de olhar algo com erro e conseguir entender a mensagem; ele só entende se estiver completamente correto.
Olha só, essa função print, ela veio lá daquele noss arquivo de cabeçalho stdio.h, então essa função printf, alguém, os desenvolvedores da linguagem C, já disseram lá dentro o que ela vai fazer.
E aí?
O que é que ela faz?
Ela imprime informações no terminal, ela imprime informações na tela.
Como que ela faz isso?
Não sei, alguém definiu lá dentro, em stido.h como ela faz isso; mas para a gente não importa muito como ela faz, o que importa é o que ela faz, e ela faz isso, ela imprime informações na tela.
O que é que a gente tem que enviar para ela imprimir?
A gente tem que obedecer isso aqui, olha só.
Nós abrimos aqui um parênteses, que foi fechado aqui; dentro desse parênteses perceba que nós colocamos aqui uma aspa dupla e fechamos essa aspa dupla; e que aqui dentro a gente escreveu algumas palavras, olha só, Hello World, que traduzindo para o português seria Olá mundo.
Basicamente é isso que a gente tem aqui.
Isso aqui é texto; como que eu sei que isso aqui é texto?
Nós temos aqui um par de aspa dupla; tudo o que estiver entre um par de aspas duplas é texto, na maioria das linguagens de programação, ok?!?
E aqui na programação C, na linguagem C, também.
Então, tudo que eu colocar entre essas aspas duplas vai ser impresso na tela como texto; e então eu fechei aqui o parênteses e terminei com o ponto e vírgula.
Esse ponto e vírgula, ele é extremamente importante; ele indica o fim de uma construção.
Ele diz o seguinte: “ Olha, a instrução printf terminou aqui.
E agora, vamos entender, então, esse código de forma completa.
Olha só, eu tenho aqui o que nós vimos, linha a linha; eu estou incluindo aqui o nosso arquivo de cabeçalho, este trecho, essa linha se chama assinatura.
O que é a assinatura?
É o nome da função, olha só, int main, esse main aqui é o nome da minha função.
Dentro dela, olha a indentação; está vendo que aqui eu tenho esse espaço, nessa direção aqui, um abaixo do outro; só que aqui eu tenho um espaço, eu tenho um recuo.
O que significa esse recuo?
É a nossa indentação.
Indentação?
E para que serve a implementação?
Significa que tudo o que tiver esse recuo está dentro da função main.
Olha só, perceba que tem aqui um par de chaves que foi fechado aqui.
Essas duas linhas aqui estão dentro desse par de chaves, ou seja, estão dentro da nossa função main.
Nessa linha aqui nós temos a função printf que nós já vimos o que ela faz, e lembra do nosso int aqui, o nosso retorno?
Olha só, a minha função main termina com return 0 (zero).
O return é para retornar em zero.
Que tipo que é esse zero aqui?
Na matemática a gente aprendeu que esse número aqui é um número inteiro, concorda?
Então esse int aqui é exatamente isso que significa; olha, vai retornar um número inteiro, olha só, isso aqui é um número inteiro.
Ah, e se eu não quisesse retornar o número inteiro eu poderia retirar o zero, eu poderia retirar essa linha aqui, não ter o retorno de zero e aí eu iria trocar o int por void.
Esse void significa vazio, mas nesse caso eu não vou fazer isso; a gente vai ter um retorno, e aí vamos ver qual seria aqui o resultado desse programa.
Olha só, se a gente executar e compilar esse nosso programa, vai aparecer no terminal exatamente isso aqui para a gente, olha só.
Está vendo o texto que a gente passou na nossa função printf ele aparece aqui, Hello World.
Então, qualquer coisa que você escrever entre o par de aspas duplas vai ser interpretado como texto e vai ser impresso na tela.
Ah, mas e o retorno, Wagner, para que serve o retorno?
Olha só, eu disse que a gente tem aqui um inteiro, vai ser retornado um tipo inteiro e terminou a minha função, nem terminou com o return zero; esse zero está aqui, olha ele aqui, ‘Program Finished with exit code 0’.
Esse zero aqui é esse zero que foi retornado; e por que eu tenho que retornar um zero?
Significa que se o seu programa foi compilado corretamente e executou até esta linha, retornou zero significa que ele finalizou com sucesso, não teve nenhum problema.
Então é por isso que normalmente toda vez que você cria um projetinho em C ele já vem com um int e com esse return 0, aqui.