Microsoft KB Archive/104672

= You receive compiler errors when you compile a file that includes a C++ header file in a C program =

Article ID: 104672

Article Last Modified on 4/24/2006

-

APPLIES TO


 * Microsoft Visual C++ 1.0 Professional Edition
 * Microsoft Visual C++ 1.5 Professional Edition
 * Microsoft Visual C++ 1.51
 * Microsoft Visual C++ 1.52 Professional Edition
 * Microsoft Visual C++ 1.0 Professional Edition
 * Microsoft Visual C++ 2.0 Professional Edition
 * Microsoft Visual C++ 2.1
 * Microsoft Visual C++ 4.0 Standard Edition
 * Microsoft Visual C++ 6.0 Service Pack 5
 * Microsoft Visual C++ 5.0 Standard Edition

-



This article was previously published under Q104672





SUMMARY
The following error is typically the first of many returned by the Microsoft C/C++ Compiler when attempting to compile a file that includes a C++ header file such as IOSTREAM.H in a C program:

ios.h(33) : error C2282: 'class' is followed by 'streambuf'. (missing ','?)

In more recent versions of the compiler, the system header files use #ifdef __cplusplus to prevent the contents from being parsed when compiled as "C" code.

There may also be multiple C2065, C2297, C2054, C2085, C2143, and C2144 errors, and eventually a C1003 error indicating that the error count reached 100.



MORE INFORMATION
The C/C++ compiler invokes either the C compiler or the C++ compiler according to the file's extension. If it ends in .C, the C compiler is invoked; if it ends in .CPP or .CXX, the C++ compiler is invoked.

To invoke the C++ compiler on a file that ends in .C or some other extension, use the /Tp switch to explicitly specify a C++ source file.

The sample code below produces the errors

error C2065: 'cout' : undeclared identifier

error C2297: '<<' : illegal, right operand has type 'char [12]'

if compiled with:   cl hello.c The code compiles fine if compiled with:   cl hello.cpp

-or-

  cl /Tp hello.c

Sample Code
/* Compile options needed: None


 * 1) include 

void main (void) {    cout << "Hello World"; }

Additional query words: 8.00 8.00c 9.00 9.10

Keywords: kbhowto kbinfo kbprogramming kbcpponly kbcompiler KB104672

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.