PRB: Compiler Lacks Warnings for Options Incompatible with /uLast reviewed: July 24, 1997Article ID: Q68385 |
The information in this article applies to:
SYMPTOMSIn the Microsoft C/C++ compiler, the /u compiler option turns off the definition of all predefined identifiers. Therefore, other compiler options that implicitly define identifiers are incompatible with /u. Nevertheless, no warnings or errors are generated if an option incompatible with /u is specified. For example, the /J option changes the default char type from signed char to unsigned char and implicitly defines the macro _CHAR_UNSIGNED. If both /u and /J are specified on the same command line, the default char type for that translation unit will be unsigned char but _CHAR_UNSIGNED will not be defined. Moreover, the compiler issues no warning, not even at warning level 4, that /u will undefine those macros defined by /J.
CAUSEThis is expected behavior. The /U (undefine) option turns off the definition of an single identifier already defined for the preprocessor. The /u option turns off every defined identifier. Both the /U and /u options apply to predefined names and user defined ones.
|
Additional query words: 8.00 8.00c 9.00 9.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |