Partilhar 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 IDL DCE não reconhecem a palavra-chave assinada. Portanto, esse recurso não está disponível quando você usa o compilador MIDL /osf switch.

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

Você também pode controlar o sinal de variáveis do tipo char e pequenas com a opção de linha de comando do compilador MIDL /char. 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 de char que não correspondem ao seu tipo padrão do compilador C no arquivo de cabeçalho gerado.