Microsoft KB Archive/79845

= INFO: Old Style (K&R) Declarations Are Not Supported in C++ =

Article ID: 79845

Article Last Modified on 12/11/2003

-

APPLIES TO


 * Microsoft Visual C++ 1.0 Professional Edition
 * Microsoft Visual C++ 1.5 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++ 5.0 Standard Edition

-



This article was previously published under Q79845



SUMMARY
The Microsoft C/C++ Compiler versions 7.0 and later do not support Old Style function declarations in C++ files. Old Style declarations are still supported in C files.

Old Style declarations, sometimes called K&R declarations, are declarations in which there are no parameters listed inside the parentheses. For example: void KRfunc; /* declaration */ void KRfunc(a, b)  /* definition */ int a; char b; { } C++ requires ANSI-style function prototypes (or declarations), which list the type of each parameter accepted by the function, as shown here: void ANSIfunc(int a, char b); This type of declaration is required because in C++ each function has a signature. The signature consists of the name of the function and the types of the parameters it accepts. The compiler cannot construct the signature of a function from the K&R declaration.

