Executable code between declarations causes the C2143 error message or the C2144 error message (58559)
The information in this article applies to:
- Microsoft Visual C++, 32-bit Editions 6.0
- Microsoft Visual C++, 32-bit Editions 5.0
- Microsoft Visual C++, 32-bit Editions 4.0
- Microsoft Visual C++, 32-bit Editions 2.0
- Microsoft Visual C++, 32-bit Editions 1.0
- Microsoft Visual C++ for Windows, 16-bit edition 1.51
- Microsoft Visual C++ for Windows, 16-bit edition 1.5
- Microsoft Visual C++ for Windows, 16-bit edition 1.0
This article was previously published under Q58559 SYMPTOMS
In Microsoft C, compiler errors C2143 and C2144 are defined as follows:
C2143: syntax error : missing 'token1' before 'token2'
C2144: syntax error : missing 'token' before type 'type'
CAUSE
You may receive this error message if your program places executable
code before a data declaration, an acceptable practice in
Kernighan-and-Ritchie C. This practice has been outlawed in later
versions of the ANSI drafts.
This error message will normally occur if a required closing curly
brace (}), right parenthesis [)], or semicolon (;) is missing.
RESOLUTION
Placing all data declarations before all executable code corrects the
programming error.
void main( )
{
int i;
printf( "Hello world!\n" );
{
int j;
}
}
Note In the C++ language, it is legal to declare data within a block of
executable code.
Modification Type: | Minor | Last Reviewed: | 6/14/2006 |
---|
Keywords: | kberrmsg kbtshoot kbCompiler kbprb kbVC152fix KB58559 kbAudDeveloper |
---|
|