Partilhar via


Digitação forte

C é uma linguagem fracamente tipada, 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 para 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 proibindo a operação. Essas diretrizes rígidas sobre tipos de dados são projetadas para evitar possíveis erros.

A dificuldade com o uso de uma linguagem fracamente tipada, como C, para chamadas de procedimento remoto é que os aplicativos distribuídos podem ser executados em vários computadores diferentes com compiladores C diferentes 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, computadores diferentes podem usar definições diferentes para seus tipos de dados de base. Por exemplo, alguns computadores definem o int tipo, de modo que 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.

As chamadas de procedimento remoto exigem um controle rigoroso sobre os tipos de parâmetros. 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 esta razão, o MIDL inclui um conjunto de tipos de base bem definidos. O MIDL impõe uma digitação forte, obrigando o uso de palavras-chave que definem inequivocamente o tamanho e o tipo de dados. O efeito mais visível da digitação forte é que o MIDL não permite que variáveis do tipo void *.

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