Article: Q152016
Product(s): Microsoft C Compiler
Version(s): 4.1,4.2
Operating System(s):
Keyword(s): kbProgramming kbCompiler kbLangCPP kbVC kbVC410bug kbVC420bug kbVC500fix
Last Modified: 04-AUG-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++, versions 4.1, 4.2
-------------------------------------------------------------------------------
SYMPTOMS
========
Compiling a program that calls the function "L" using a macro will cause the
following errors:
error C2065: 'x' : undeclared identifier
error C2064: term does not evaluate to a function
where "x" is the last letter of the macro identifier.
CAUSE
=====
In this case, the preprocessor incorrectly generates the letter "x" as the
resulting output.
RESOLUTION
==========
Use any other letter after "L" in the macro body.
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article. This bug was corrected in Visual C++ version 5.0.
MORE INFORMATION
================
Sample Code
-----------
/* Compile options needed:
*/
#define thing L
void L() {}
void main (void) {
thing();
};
Additional query words:
======================================================================
Keywords : kbProgramming kbCompiler kbLangCPP kbVC kbVC410bug kbVC420bug kbVC500fix
Technology : kbVCsearch kbAudDeveloper kbVC410 kbVC420
Version : :4.1,4.2
Issue type : kbbug
Solution Type : kbfix
=============================================================================