INFO: The Limit of Macro ExpansionLast reviewed: October 6, 1997Article ID: Q61314 |
The information in this article applies to:
In Microsoft C and Visual C++, the limit of a preprocessor macro expansion can be no more than 6K when it is FULLY expanded. Similarly, actual arguments plus FULLY expanded actual arguments are not allowed to exceed 6K during a single macro expansion. Note that this is not the same as saying that the macro DEFINITIONS must be 6K or less. The 6K limitation was chosen because the buffer used for expansion is dynamically allocated, and 6K seems to be a reasonable limit for most real programs. Additionally, there is a nesting DEPTH limit in C versions 6.0 and below of 64 on macros in C1.EXE, and 256 in C1L.EXE. The nesting limit for C 7.0 and Visual C++ 1.0 is 255. This may be noticed only if you are writing macros for some relocatable indexing scheme, such as in the following example:
#define INCOME 1; #define EXPENSE (INCOME+1) #define GINCOME (EXPENSE+1) #define TAXES (GINCOME+1) #define NINCOME (TAXES+1)and so on.
|
Additional query words: 8.00 8.00c 9.00 9.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |