De Objective Caml para C e C++/Introdução: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 83:
6 }
 
Nós não vamos entrar muito em detalhes aqui. A linha 1 faz referência a um arquivo chamado <tt>iostream</tt>, o quequal faz parte da biblioteca padrão do C++. eEste arquivo contém declarações de tipos e funções relacionadas com fluxos de entrada e saída (<tt>iostream<tt> abrevia <tt>input/output stream</tt>)., Todasou as linhas iniciandoseja com oleitura caracteree <tt>#</tt> ('jogo da velha') são 'diretivasescrita de pré-processamento'textos. Antes da fase de compilação iniciar, existe uma fase dita de pré-processamento que realiza diversas operações de manipulação do código fonte como a inclusão de arquivos (é o caso da diretiva <tt>#include</tt>), ou a definição de 'macro' (através da diretiva <tt>#define</tt>), que nada mais são que abreviações para expressões.
 
Em C e em C++, todas as linhas iniciando com o caractere <tt>#</tt> ('jogo da velha') são 'diretivas de pré-processamento'. Nessas linguagens, a compilação começa com uma fase dita de <em>pré-processamento</em> que realiza diversas operações de manipulação do código fonte como a inclusão de arquivos. Por exemplo, a diretiva <tt>#include</tt> resulte na inclusão do conteúdo de um arquivo.
As linhas 2 a 6 contém a definição de uma função, cujo nome é <tt>main</tt>. Antes do nome da função vem o tipo do resultado da mesma: aqui é o tipo <tt>int</tt> que corresponde a números inteiros. Depois do nome da função, vem uma lista de parâmetros entre parênteses. Aqui a lista é vazia e não há parâmetros. Depois da lista de parâmetros, vem o corpo da função, entre chaves. O corpo dessa função é uma seqüência composta de dois comandos (ou instruções).
 
As linhas 2 a 6 contém a definição de uma função, cujo nome é <tt>main</tt> (informações importantes sobre esse nome são dadas no final desta seção). Antes do nome da função vem o tipo do resultado da mesma: aqui é o tipo <tt>int</tt> que corresponde a números inteiros. Depois do nome da função, vem uma lista de parâmetros entre parênteses. Aqui a lista é vazia e não há parâmetros. Depois<tt>main</tt> daportanto listaé deuma parâmetros,função vemque onão corpotem da funçãoargumentos, entree chaves.que Oretorna corpoum dessavalor funçãodo étipo uma<tt>int</tt>. seqüênciaEm compostaCaml deesse doistipo comandosé (oudenotado instruções)<tt>unit->int</tt>.
O primeiro comando (linha 4) é uma chamada ao operador <tt>&lt;&lt;</tt>, que é o operador de impressão da linguagem C++. Esse operador é infixo e tem dois argumentos: o primeiro, a esquerda, é um fluxo de saída, no caso é <tt>std::cout</tt>, a saída padrão, o segundo argumento é o valor que será impresso, no caso é o texto <tt>"ola.\n"</tt>.
 
Depois da lista de parâmetros, vem o corpo da função, colocado entre chaves. Neste exemplo, o corpo dessa função é uma seqüência composta de dois comandos (ou instruções).
 
O primeiro comando (linha 4) éaplica umao chamadaoperador aode operadorimpressão C++, que se escreve <tt>&lt;&lt;</tt>, que(menor é o operador de impressão da linguagem C++menor). Esse operador é infixo e tem dois argumentos: o primeiro, a esquerda, é um fluxo de saída, no caso é <tt>std::cout</tt>, a saída padrão, o segundo argumento é o valor que será impresso, no caso é o texto <tt>"ola.\n"</tt>. O resultado da aplicação deste operador é o próprio fluxo de saída. Assim, ele pode ser encadeado, como no exemplo seguinte:
 
std::cout << "Oi\n" << "Tudo bem?";
 
O segundo comando (linha 5) é uma instrução pré-definida da linguagem C++ que, tem um argumento, e instrui que a função deve terminar a sua execução e retornar o valor dado em argumento, no caso o valor 0.
 
Vale salientarAgora que asexplicamos cada linha do exemplo, devemos voltar ao nome da função: <tt>main</tt>. As linguagens C e C++ temtêm como convenção que a execução de um programa sempre inicia com a chamada de umada função chamada <tt>main</tt>. Portanto, quando irá desenvolver um programa nessas linguagens, sempre deverá definir uma função com esse nome, que será o ponto de partida inicial desse programa. O valor que retorna oa programafunção <tt>main</tt> é comunicado ao sistema operacional e pode ser usado para informar da ocorrência ou não de algum problema. (porPor convenção, o valor 0 indica uma execução bem-sucedida).
 
Portanto, quando irá desenvolver um programa nessas linguagens, sempre deverá definir uma função com esse nome, que será o ponto inicial da execução desse programa.
 
===Um primeiro programa em C===