有符号和无符号类型 (MIDL)
对已签名和未签名类型使用不同的默认值的编译器可能会导致分布式应用程序中的软件错误。 可以通过将字符类型显式声明为已签名或未签名来避免这些问题。 请注意,DCE IDL 编译器无法识别 签名关键字。 因此,使用 MIDL 编译器/osf 开关时,此功能不可用。
MIDL 定义 小型 类型,以采用与目标 C 编译器中 字符 类型相同的默认符号。 如果编译器假定 字符 为无符号,则 小 也将定义为无符号。 许多 C 编译器允许将默认值更改为命令行选项。 例如,在 Microsoft Visual C++ 开发环境中,/J 命令行选项将 char 的默认符号从已签名更改为未签名。
还可以使用 MIDL 编译器命令行开关 /char控制类型 字符 和 小 的变量的符号。 此开关允许你指定编译器使用的默认符号。 MIDL 编译器显式声明与生成的头文件中 C 编译器默认类型不匹配的所有 字符 类型的符号。