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.
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.
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.
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.
====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.
====Introdução ao conceito====
Linha 526:
}}
===Tipos uniões[[Imagem:3de8.
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.
|