Compartilhar via


Tipos assinados e não assinados (MIDL)

Compiladores que usam padrões diferentes para tipos assinados e não assinados podem causar erros de software em seu aplicativo distribuído. Você pode evitar esses problemas declarando explicitamente seus tipos de caracteres como assinados ou não assinados. Observe que os compiladores de IDL do DCE não reconhecem o palavra-chave assinado. Portanto, esse recurso não está disponível quando você usa o comutador /osf do compilador MIDL.

MIDL define o tipo pequeno para usar o mesmo sinal padrão que o tipo char no compilador C de destino. Se o compilador assumir que char não está assinado, small também será definido como sem sinal. Muitos compiladores C permitem alterar o padrão como uma opção de linha de comando. Por exemplo, no ambiente de desenvolvimento Microsoft Visual C++, a opção de linha de comando /J altera o sinal padrão de char de assinado para sem sinal.

Você também pode controlar o sinal de variáveis do tipo char e small com o comutador de linha de comando /char do compilador MIDL. Essa opção permite que você especifique o sinal padrão usado pelo compilador. O compilador MIDL declara explicitamente o sinal de todos os tipos char que não correspondem ao tipo padrão do compilador C no arquivo de cabeçalho gerado.