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

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
mSem resumo de edição
m substituição de imagens PNG por SVG using AWB
Linha 1:
===Conceitos iniciais [[Imagem:2de8.pngsvg]]===
 
As linguagens C e C++ possuem muitos mecanismos para construir e estruturar dados complexos. Diferentemente dos tipos básicos, onde há uma forte correspondência entre essas linguagens e a linguagem Objective Caml, a construção de tipos complexos em C e C++ é bem diferente daquela provida por Objective Caml. Esse capítulo não aborda a construção de tipos via classes de objetos, que é um paradigma presente nas linguagens Objective Camle e C++, mas que é ausente da linguagem C.
Linha 37:
Tpoint point; // point é uma variável cujo tipo é Tpoint, ou seja o tipo registro struct Spoint
 
===Enumerações [[Imagem:3de8.pngsvg]]===
 
Com relação ao sistema de tipos de Objective Caml, os tipos enumerados lembram de forma superficial os tipos variantes. Os tipos enumerados são porém muito mais limitados, e correspondem mais precisamente a tipos variantes onde as alternativas devem ser todas constantes.
Linha 78:
Define um tipo equivalente em C/C++.
 
===Arranjos [[Imagem:3de8.pngsvg]]===
 
A linguagem C permite declarar arranjos uni-dimensionais, dando as seguintes informações: o tipo dos elementos, e o tamanho do arranjo. Por exemplo, o seguinte código define uma variável <tt>notas</tt> para guardar quatro valores do tipo <tt>float</tt>, utilizaremos o seguinte código:
Linha 252:
[[[ ADICIONAR UM PARÁGRAFO SOBRE PONTEIROS PARA REGISTROS ]]]
 
===Ponteiros [[Imagem:3de8.pngsvg]]===
 
====Introdução====
Linha 436:
Na expressão <tt>p1-p2</tt>, ambos ponteiros devem apontar para elementos do mesmo arranjo (ou para a primeira posição após a última posição do arranjo), e o resultado será a diferença entre as posições desses elementos no arranjo.
 
===Tipos referências[[Imagem:3de8.pngsvg]]===
 
====Introdução ao conceito====
Linha 526:
}}
 
===Tipos uniões[[Imagem:3de8.pngsvg]]===
 
Tipos uniões agrupam diversos tipos em um mesmo tipo. Eles possuem portanto um papel muito similar aos tipos variantes de Objective Caml. Infelizmente, a programação por tipos uniões de C e C++ não é tão simples quanto a de tipos variantes.