Tipi firmati e non firmati (MIDL)

I compilatori che usano valori predefiniti diversi per i tipi firmati e non firmati possono causare errori software nell'applicazione distribuita. È possibile evitare questi problemi dichiarando in modo esplicito i tipi di carattere come firmati o non firmati. Si noti che i compilatori IDL DCE non riconoscono la parola chiave firmata. Pertanto, questa funzionalità non è disponibile quando si usa l'opzione del compilatore MIDL /osf .

MIDL definisce il tipo di piccole dimensioni per accettare lo stesso segno predefinito del tipo char nel compilatore C di destinazione. Se il compilatore presuppone che char non sia firmato, verrà definito anche unsigned. Molti compilatori C consentono di modificare il valore predefinito come opzione della riga di comando. Ad esempio, nell'ambiente di sviluppo Microsoft Visual C++, l'opzione /J della riga di comando modifica il segno predefinito di char firmato a non firmato.

È anche possibile controllare il segno delle variabili di tipo char e piccole con l'opzione della riga di comando del compilatore MIDL /char. Questa opzione consente di specificare il segno predefinito usato dal compilatore. Il compilatore MIDL dichiara in modo esplicito il segno di tutti i tipi char che non corrispondono al tipo predefinito del compilatore C nel file di intestazione generato.