On Sun, Mar 16, 2003 at 10:06:01PM +0000, Colin Watson wrote:
> I stand corrected, then. Although 'info libc' does say that (void) is OK
> for main() in ISO C.

Correct.  Two ISO C forms of main are:

  int main (void) { ... }  
  /* identical to: int main () { ... } */ 

or

  int main (int argc, char *argv[]) { ... }
  /* identical to: int main (int argc, char **argv) { ... } */


However:

  int main ();

and

  int main (void);

are not identical *declarations*.   But only crazy people who like to
call "main" recursively ever write declarations for it...

In non-conforming mode (the default), gcc will also accept "void main(...)"
and the three argument form that adds "char **envp"...

And then, there is the K&R form with implicit int return:

main (argc, argv)
int argc;
char *argv[];
{...}

K&R is accepted but deprecated in all versions of ISO/ANSI C except the
implicit int return type is an error in C99.

(Now, back to your regularly scheduled program ...)

-- 
echo ">[EMAIL PROTECTED]< eryyvZ .T pveR" | rot13 | reverse


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to