Ler em inglês

Compartilhar via


Tipagem forte

C é uma linguagem de tipo fraco, ou seja, o compilador permite operações como atribuição e comparação entre variáveis de diferentes tipos. Por exemplo, C permite que o valor de uma variável seja convertido em outro tipo. A capacidade de usar variáveis de diferentes tipos na mesma expressão promove flexibilidade e eficiência.

Uma linguagem fortemente tipada impõe restrições às operações entre variáveis de diferentes tipos. Nesses casos, o compilador emite um erro que proíbe a operação. Essas diretrizes estritas sobre tipos de dados são projetadas para evitar possíveis erros.

A dificuldade com o uso de uma linguagem de tipo fraco, como C, para chamadas de procedimento remoto é que aplicativos distribuídos podem ser executados em vários computadores diferentes com diferentes compiladores C e arquiteturas diferentes. Quando um aplicativo é executado em apenas um computador, você não precisa se preocupar com o formato de dados interno porque os dados são tratados de maneira consistente. No entanto, em um ambiente de computação distribuída, diferentes computadores podem usar definições diferentes para seus tipos de dados base. Por exemplo, alguns computadores definem o tipo int , portanto, sua representação interna é de 16 bits, enquanto outros computadores usam 32 bits. Uma arquitetura de computador, conhecida como "little endian", atribui o byte menos significativo de dados ao endereço de memória mais baixo e o byte mais significativo ao endereço mais alto. Outra arquitetura, conhecida como "big endian", atribui o byte menos significativo ao endereço de memória mais alto associado a esses dados.

Chamadas de procedimento remoto exigem controle estrito sobre tipos de parâmetro. Para lidar com a transmissão e conversão de dados pela rede, o MIDL impõe estritamente restrições de tipo para dados transferidos pela rede. Por esse motivo, MIDL inclui um conjunto de tipos base bem definidos. O MIDL impõe uma digitação forte exigindo o uso de palavras-chave que definem de forma inequívoca o tamanho e o tipo de dados. O efeito mais visível da digitação forte é que MIDL não permite variáveis do tipo void *.

Nos tópicos a seguir, esta seção discute os recursos de linguagem MIDL que impõem a digitação forte de dados: