02 - Linguagem C: O ponto de partida [Guia #dev iOS]

Para desenvolver aplicações para iPhone e iPad é necessário conhecer a linguagem de programação Objective-C. Ela é derivada da linguagem C, e por esse motivo vamos ver nesses primeiros artigos do Guia Dev iOS uma introdução à linguagem C, com alguns fundamentos básicos para que possa entender as pri

Por | @jonathanlamimkt Programação
<p class="p1">Para desenvolver aplica&ccedil;&otilde;es para iPhone e iPad &eacute; necess&aacute;rio conhecer a linguagem de programa&ccedil;&atilde;o Objective-C. Ela &eacute; derivada da linguagem C, e por esse motivo vamos ver nesses primeiros artigos do Guia Dev iOS uma introdu&ccedil;&atilde;o &agrave; linguagem C, com alguns fundamentos b&aacute;sicos para que possa entender as primeiras linhas de c&oacute;digo em Objective-C.</p> <h2>A pr&aacute;tica faz a perfei&ccedil;&atilde;o<span style="font-size: 13px;">&nbsp;</span></h2> <p class="p3">Uma linguagem de programa&ccedil;&atilde;o pode ser melhor compreendida se voc&ecirc; estuda praticando. Vamos abrir o Xcode e criar um novo projeto, onde iremos escrever algumas linhas de c&oacute;digo em linguagem C. Para criar um novo projeto v&aacute; at&eacute; o menu e selecione as op&ccedil;&otilde;es <strong><em>File &gt; New &gt; Project</em></strong>.</p> <p class="p3"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9920/img01.png" alt="" /></span></p> <p class="p2">Feito isso, vamos escolher o tipo de projeto. Como queremos apenas trabalhar com conceitos iniciais da linguagem C vamos criar um projeto para <strong>OS X</strong>. Selecione a op&ccedil;&atilde;o <strong>Application</strong> na se&ccedil;&atilde;o <strong>OS X</strong>, do lado esquerdo da tela e escolha em seguida a op&ccedil;&atilde;o <strong>Comand Line Tool</strong>, do lado direito. Para concluir esta etapa clique em <strong>Next</strong>.</p> <p class="p3"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9920/img02.png" alt="" /></span></p> <p class="p3">O pr&oacute;ximo passo &eacute; nomearmos o projeto (Product Name) e informarmos o nome da organiza&ccedil;&atilde;o e um identificador. Veremos a finalidade de cada um desses itens posteriormente. Por enquanto utilize as seguintes informa&ccedil;&otilde;es para preencher os campos:</p> <ul> <li><strong>Product Name:</strong> GuiaDev-LinguagemC</li> <li><strong>Organization Name:</strong> seu nome</li> <li><strong>Company Identifier:</strong> com.seunome</li> <li><strong>Type: </strong>C</li> </ul> <p class="p3">Mantenha a op&ccedil;&atilde;o Use <strong>Automatic Reference Counting</strong> marcada e clique em <strong>Next</strong> para salvar o projeto.</p> <p class="p3"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9920/td_img03.png" alt="" /></span></p> <p class="p3">Escolha o local onde vai salvar o projeto, desmarque a op&ccedil;&atilde;o <strong>Create local git repository for this project</strong>. Essa op&ccedil;&atilde;o &eacute; muito utilizada quando se trabalha com controle de vers&atilde;o, mas n&atilde;o &eacute; o nosso caso no momento.</p> <p class="p3">Clique em <strong>Create</strong> para concluir o processo de cria&ccedil;&atilde;o do projeto.</p> <p class="p3"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9920/img04.png" alt="" /></span></p> <h2><strong>Overview</strong></h2> <p class="p2">Para fins de estudo da linguagem C, no projeto criado o arquivo importante &eacute; o <strong>main.c</strong>. Arquivos com a extens&atilde;o <strong>.c</strong> indicam que &eacute; um arquivo da linguagem C.</p> <p class="p3">Antes de come&ccedil;armos a rodar c&oacute;digos em linha de comando, vamos ver o conte&uacute;do inicial do arquivo <strong>main.c</strong>, que foi criado automaticamente quando salvamos o projeto.</p> <p class="p2"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9920/td_img05.png" alt="" /></span></p> <p class="p3">A linguagem C &eacute; uma liguagem tipada, repare isso na implementa&ccedil;&atilde;o da fun&ccedil;&atilde;o <strong>main</strong>. Logo no in&iacute;cio, antes do nome da fun&ccedil;&atilde;o, &eacute; informado o tipo de dado que ser&aacute; retornado. Note que os argumentos da fun&ccedil;&atilde;o tamb&eacute;m s&atilde;o tipados.</p> <p class="p3">A palavra chave <strong>function</strong> que &eacute; comum em muitas outras linguagens, em C ela est&aacute; ausente. O corpo da fun&ccedil;&atilde;o <strong>main</strong> inicia com um coment&aacute;rio de linha (//). A segunda linha do corpo da fun&ccedil;&atilde;o &eacute; uma outra fun&ccedil;&atilde;o, que &eacute; parte da biblioteca padr&atilde;o da linguagem C, por isso a defini&ccedil;&atilde;o <strong>#include </strong> foi utilizada antes da fun&ccedil;&atilde;o <strong>main.&nbsp;</strong></p> <p class="p3">A fun&ccedil;&atilde;o <strong>printf</strong> &eacute; uma fun&ccedil;&atilde;o de sa&iacute;da, que &eacute; capaz de escrever no Xcode console a informa&ccedil;&atilde;o passada por par&acirc;metro, que nesse caso &eacute; <strong>"Hello World!n"</strong>. O n especifica uma quebra de linha, a cria&ccedil;&atilde;o de uma nova linha, onde tudo o que for escrito ap&oacute;s o "Hello World!" ficar&aacute; abaixo dele.</p> <p class="p3">A fun&ccedil;&atilde;o <strong>main </strong>finaliza retornando 0 (zero). Quando um programa retorna 0 (zero), indica que o processamento ocorreu com sucesso.</p> <h2><strong>Contruindo e Executando</strong></h2> <p class="p3">Agora que voc&ecirc; j&aacute; sabe o que a fun&ccedil;&atilde;o <strong>main </strong>faz, &eacute; hora de rodar a linha de comando. Para construir a aplica&ccedil;&atilde;o, o c&oacute;digo que est&aacute; em <strong>main.c</strong> &eacute; compilado em um bin&aacute;rio, que &eacute; ent&atilde;o executado. Para rodar a linha de comando, clique no bot&atilde;o <strong>Run</strong> no topo esquerdo da tela do Xcode. Se n&atilde;o estiver conseguindo ver a &aacute;rea de debug na parte inferior direita da tela, clique no bot&atilde;o central das op&ccedil;&otilde;es de visualiza&ccedil;&atilde;o na parte superior direita da tela.</p> <p class="p2"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9920/img06.png" alt="" /></span></p> <p class="p3">Ap&oacute;s rodar voc&ecirc; dever&aacute; ver o seguinte no Xcode console:</p> <p class="p2"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9920/td_img07.png" alt="" /></span></p> <h2><strong>Caracter&iacute;sticas Importantes</strong></h2> <p class="p3">A seguir veremos algumas caracter&iacute;sticas importantes da linguagem C, sem muitos detalhes, apenas para conhecimento mesmo. Quando iniciarmos os trabalhos com o Objective-C, veremos mais detalhes.</p> <h3><strong>Data Types</strong></h3> <p class="p3">Outra importante diferen&ccedil;a entre a linguagem C e outras linguagens como Ruby, PHP e JavaScript &eacute; que C &eacute; uma liguagem tipada. Isso significa que o tipo de dados de uma vari&aacute;vel precisa ser explicitamente especificado. Em C os data types fundamentais s&atilde;o: characters (char), integers (int) e n&uacute;meros de ponto flutuantes, ou simplesmente os decimais (float). Para esses tipos fundamentais, temos alguns adicionais que podem ser implementados, como double, long e unsigned int. Para conhecer a lista completa dos tipos b&aacute;sicos em C, a Wikipedia possui um conte&uacute;do interessante (<a rel="nofollow" href="http://en.wikipedia.org/wiki/C_data_types" target="_blank">veja aqui</a>).</p> <p class="p3">As strings na linguagem C s&atilde;o armazenadas em um array de caracteres, sendo assim, quando trabalharmos com string temos que definir o tipo como <strong>char</strong>.&nbsp;</p> <p class="p3"><strong>Veja no exemplo a seguir:</strong></p> <p class="p3"><code>char firstName[] = "Jonh";</code></p> <p class="p3">Vamos usar dois blocos de c&oacute;digos para explorarmos melhor a diferen&ccedil;a entre os tipos de dados. O primeiro bloco de c&oacute;digo &eacute; escrito em JavaScript, e o segundo &eacute; escrito em C. Em JavaScript, uma vari&aacute;vel &eacute; geralmente declarada com o <strong>var <em>keyword</em></strong>. A linguagem C n&atilde;o precisa do uso de <strong>var </strong>para a declara&ccedil;&atilde;o de vari&aacute;veis, a vari&aacute;vel &eacute; declarada com um prefixo, que &eacute; o tipo de dado que ela vai receber.</p> <p class="p3"><em><strong>C&oacute;digo em JavaScript</strong></em></p> <p><code>var a = 3;<br />var b = 3.456;<br />var c = 'a';</code></p> <p class="p2">&nbsp;</p> <p class="p3"><em><strong>C&oacute;digo em C</strong></em></p> <p class="p3"><code>int a = 3;<br />float b = 3.456;<br />char c = 'a';</code></p> <p class="p3">Vamos ver agora na pr&aacute;tica como fica tudo isso. V&aacute; at&eacute; o XCode e no arquivo <strong>main.c</strong> localize a fun&ccedil;&atilde;o <strong>main</strong>. Adicione &agrave; fun&ccedil;&atilde;o o c&oacute;digo do bloco a seguir, que est&aacute; logo ap&oacute;s o coment&aacute;rio <strong>Variables</strong>.</p> <p class="p3"><code>int main(int argc, comnst char *argv[])<br />{    <br />    //insert code here&hellip;<br />    printf("Hello, World!n");<br /><br />    // Variables<br />    int a = 3;<br />    float b = 3.456;<br />    char c = 'a'; <br /><br />    printf("Isso é um inteiro: %in", a);<br />    printf("Isso é um decimal: %fn", b);<br />    printf("Isso é uma string: %cn", c);<br /><br />    return 0;<br />}</code></p> <p class="p3">Ap&oacute;s alterar o c&oacute;digo, salve e rode novamente, para que seja recompilado e exibido no Xcode Console.</p> <h3><strong>Fun&ccedil;&otilde;es</strong></h3> <p class="p3">Como em outras linguagens, uma fun&ccedil;&atilde;o na linguagem C nada mais &eacute; do que um bloco de c&oacute;digo com uma performance desenhada para uma situa&ccedil;&atilde;o espec&iacute;fica. Vamos entender melhor na pr&aacute;tica, volte ao arquivo <strong>main.c</strong> e antes da declara&ccedil;&atilde;o da fun&ccedil;&atilde;o <strong>main</strong>, declare a nova fun&ccedil;&atilde;o:</p> <p class="p3"><code>int multiplyByFour(int a);</code></p> <p class="p3">Essa fun&ccedil;&atilde;o que vamos criar ir&aacute; multiplicar um valor qualquer, que ser&aacute; passado como par&acirc;metro para a fun&ccedil;&atilde;o, por 4, retornando o resultado. Ap&oacute;s a fun&ccedil;&atilde;o <strong>main</strong>, escreva o bloco de c&oacute;digo que cont&eacute;m a estrutura da fun&ccedil;&atilde;o <strong>multiplyByFour</strong>.</p> <p class="p3"><code>int multiplyByFour(int a)<br />{<br />     return a * 4;<br />}</code></p> <p class="p3">Agora vamos chamar a execu&ccedil;&atilde;o da nova fun&ccedil;&atilde;o dentro da fun&ccedil;&atilde;o <strong>main</strong>. Atualize o c&oacute;digo da fun&ccedil;&atilde;o <strong>main</strong> inserindo o c&oacute;digo a seguir antes do <strong>return</strong> da fun&ccedil;&atilde;o.</p> <p class="p3"><code>printf("Dois multiplicado por quatro é %in",multiplyByFour(2));</code></p> <p class="p3">Se voc&ecirc; tiver uma fun&ccedil;&atilde;o que n&atilde;o retornar&aacute; nenhum valor, por exemplo, s&oacute; ir&aacute; imprimir alguma informa&ccedil;&atilde;o na tela, o tipo dessa fun&ccedil;&atilde;o ser&aacute; <strong>void</strong>.</p> <h3><strong>Estruturas</strong></h3> <p class="p3">Uma estrutura &eacute; uma cole&ccedil;&atilde;o de uma ou mais vari&aacute;veis, possivelmente de tipos diferentes, agrupadas sob um &uacute;nico nome para f&aacute;cil manuseio. veja no c&oacute;digo a seguir um exemplo de estrutura.</p> <p class="p3"><code>// Structures<br />struct Album {<br />    int year;<br />    int tracks;<br />};<br />struct Album myAlbum;<br />struct Album yourAlbum;<br /><br />myAlbum.year = 1998;<br />myAlbum.tracks = 20;<br /><br />yourAlbum.year = 2001;<br />yourAlbum.tracks = 18;<br /><br />printf("Meu álbum foi lançado em %i e tem %i faixas.n", myAlbum.year, myAlbum.tracks);<br />printf("Seu álbum foi lançado em %i e tem %i faixas.n", yourAlbum.year, yourAlbum.tracks);</code></p> <p class="p3">Come&ccedil;amos declarando o tipo da nova estrutura, chamada <strong>Album</strong>. Ap&oacute;s declararmos o novo tipo, n&oacute;s especificamos as vari&aacute;veis que ser&atilde;o utilziadas, sempre lembrando de definir o tipo de dados de cada vari&aacute;vel. Em seguida definimos 2 &aacute;lbuns, o myAlbum e o yourAlbum.</p> <p class="p3">Feito isso n&oacute;s podemos setar os valores para as vari&aacute;veis e recuper&aacute;-los posteriormente para exibi&ccedil;&atilde;o na tela.</p> <p class="p3">Nos pr&oacute;ximos artigos n&oacute;s come&ccedil;aremos a trabalhar com a linguagem Objective-C, que &eacute; derivada da linguagem C, que acabamos de ver umas informa&ccedil;&otilde;es b&aacute;sicas. O conhecimento da linguagem C &eacute; muito importante para o sucesso na programa&ccedil;&atilde;o para iOS, ent&atilde;o n&atilde;o fique parado e pesquise sempre um pouco mais sobre essa linguagem.</p>

Mais sobre: guiadevios ios
Share Tweet
Comentários
Carregar comentários
Destaquesver tudo
  • ASSINE NOSSA NEWSLETTER

    As melhores publicações no
    seu e-mail

  • Preencha para confirmar