C4071 Caused by Missing "void" in Function PrototypeLast reviewed: July 17, 1997Article ID: Q59439 |
6.00 6.00a 6.00ax 7.00 | 6.00 6.00a | 1.00 1.50
MS-DOS | OS/2 | WINDOWSkbtool kbcode
The information in this article applies to:
The Microsoft C/C++ Compiler (CL.EXE), included with: - Microsoft C for MS-DOS, versions 6.0, 6.0a, and 6.0ax - Microsoft C for OS/2, versions 6.0 and 6.0a - Microsoft C/C++ for MS-DOS, versions 7.0 - Microsoft Visual C++ for Windows, versions 1.0 and 1.5
SUMMARYFunction prototypes must have parameter lists. If no arguments are to be passed to a function, the parameter list must contain the keyword "void". At warning level three (/W3), leaving "void" out of such a prototype parameter list leads to the following warning message in C version 6.0:
C4071 'name' : no function prototype givenMicrosoft C/C++ version 7.0 and later generate:
C4013: 'myfunc' undefined; assuming extern returning int C2371: 'myfunc' : redefinition; different basic typesNo error is generated with the 32-bit C/C++ compilers.
MORE INFORMATIONThe following code demonstrates the problem:
Sample Code
/* Compile option needed: none myfunc is not prototyped correctly */ #include <stdio.h> void myfunc(); /* Missing void in parameter list */ void main(void){ myfunc(); /* myfunc still not prototyped */ } void myfunc() /* Function definition doesn't need void */ { printf("Hello\n");}
|
Additional reference words: kbinf 1.00 1.50 6.00 6.00a 6.00ax 7.00 8.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |