Microsoft KB Archive/59439

{|
 * width="100%"|

C4071 Caused by Missing &quot;void&quot; in Function Prototype

 * }

Q59439

6.00 6.00a 6.00ax 7.00 | 6.00 6.00a | 1.00 1.50 MS-DOS | OS/2 | WINDOWS kbtool 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 -- SUMMARY ======= Function prototypes must have parameter lists. If no arguments are to be passed to a function, the parameter list must contain the keyword &quot;void&quot;. At warning level three (/W3), leaving &quot;void&quot; out of such a prototype parameter list leads to the following warning message in C version 6.0: C4071 'name' : no function prototype given Microsoft C/C++ version 7.0 and later generate: C4013: 'myfunc' undefined; assuming extern returning int C2371: 'myfunc' : redefinition; different basic types No error is generated with the 32-bit C/C++ compilers. MORE INFORMATION ================ The following code demonstrates the problem: Sample Code --- /* Compile option needed: none myfunc is not prototyped correctly */ #include void myfunc; /* Missing void in parameter list */ void main(void) { myfunc; /* myfunc still not prototyped */ } void myfunc /* Function definition doesn't need void */ { printf(&quot;Hello\n&quot;); } Additional reference words: kbinf 1.00 1.50 6.00 6.00a 6.00ax 7.00 8.00 8.00c KBCategory: kbtool kbcode KBSubcategory: CLIss

Keywords : kb16bitonly

Issue type :

Technology : kbVCsearch kbAudDeveloper kbCVCComp